我想做一个class名称列表放到数组中去,里面没有空元素和重复项,请问怎么做,下面的代码有缺陷,请高手帮忙改改。
<script type="text/javascript" src="http://localhost/leb/auto/js/jquery-latest.js"></script>
<script type="text/javascript">
function output_css(){
var css_sheet=[];
for(var i in $(".page *")){
var css_name=$(".page *")[i].className;
if(css_name!=""){
css_sheet.push(css_name);
}
}
alert(css_sheet);
}
$(function(){
output_css(); //输出的结构很多“,,,,,,”空元素。
})
</script>
<body>
<div class="page">
<div class="head">
<div class="line">
<div class="mod logo" >
<div class="inner">
<div class="hd ">
<h3>logo</h3>
</div>
<div class="bd li li_24 li_h24">
<ul>
<li><a href="#">测试</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="line"></div>
<div class="line"></div>
</div>
<div class="body">
.....
</div>
<div class="foot">
.....
</div>
</div>
</body>
<script type="text/javascript" src="http://localhost/leb/auto/js/jquery-latest.js"></script>
<script type="text/javascript">
function output_css(){
var css_sheet=[];
for(var i in $(".page *")){
var css_name=$(".page *")[i].className;
if(css_name!=""){
css_sheet.push(css_name);
}
}
alert(css_sheet);
}
$(function(){
output_css(); //输出的结构很多“,,,,,,”空元素。
})
</script>
<body>
<div class="page">
<div class="head">
<div class="line">
<div class="mod logo" >
<div class="inner">
<div class="hd ">
<h3>logo</h3>
</div>
<div class="bd li li_24 li_h24">
<ul>
<li><a href="#">测试</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="line"></div>
<div class="line"></div>
</div>
<div class="body">
.....
</div>
<div class="foot">
.....
</div>
</div>
</body>
<html>
<body>
<div class="page">
<div class="head">
<div class="line">
<div class="mod logo" >
<div class="inner">
<div class="hd ">
<h3>logo</h3>
</div>
<div class="bd li li_24 li_h24">
<ul>
<li><a href="#">测试</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="line"></div>
<div class="line"></div>
</div>
<div class="body">
.....
</div>
<div class="foot">
.....
</div>
</div>
<script language="javascript">
Array.prototype.unique =
function() {
var a = [];
var l = this.length;
for(var i=0; i<l; i++) {
for(var j=i+1; j<l; j++) {
// If this[i] is found later in the array
if (this[i] === this[j])
j = ++i;
}
a.push(this[i]);
}
return a;
};
var divs = document.getElementsByTagName("div");
var classname_str = "";
for( i in divs){
classname_str += divs.item(i).className + " ";
}
classname_str = classname_str.replace("/\s\s+/", " ");
var classname_array = classname_str.split(" ");
classname_array.splice(classname_array.length -1, 1);
alert(classname_array.unique())
</script>
</body>
</html>
<script type="text/javascript">
var classList = [];
$("*").each(function(idx){
var curClass = $(this).attr('class');
if(typeof(curClass) != 'undefined'){
if(!(curClass in classList)){
classList[classList.length] = curClass;
}
}
}); alert(classList);
</script>
var css_sheet = [];
$('.page *').each(function() {
if (this.className != '') css_sheet.push(this.className);
});
var class_sheet=[];
function output_css(){
var classList = "";
var classList2 = "";
var temp_array=[];
$(".page *").each(function(i){
var curClass = $(this).attr('class').replace(/(^\s)|(\s$)/,"");
classList=classList+" "+curClass;
temp_array=classList.split(" ");
for (var i in temp_array){
if((classList2.indexOf(temp_array[i]+" "))==-1){
classList2=classList2+temp_array[i]+" ";
}
}
});
classList2=classList2.replace(/(^\s)|(\s$)/g, "");
class_sheet=classList2.split(" ");
}
$(function(){
output_css();
})
</script>
有些元素可能没有class属性,就不用判断了,把$(".page *")改成$(".page *[class]")可能更好点吧