谁帮我一下ID组的问题要怎么才能解决不能显示一个效果 本帖最后由 ganqi123 于 2012-09-30 20:37:14 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 第一:ID不要重复,document.getElementById('dhp')将只能返回第一个div对象第二:这种状态值,完全可以在后台输出之前进行处理。第三:你这些状态太凌乱了,可能结构设计上存在问题。应该不至于一个对象会同时存在新加,连载,完结三种状态才是。普通也就是连载和完结两种状态,最多你再额外根据一个上架时间多长以内附加一个新加状态第三:你如果一定要前端进行处理的话<style type="text/css">div,ul,li{ margin:0; padding:0;}ul,li{ list-style:none;position:relative;}#dhp{ width:500px; }#dhp li{ width:100px; height:150px; border:1px solid #ddd; padding:5px; float:left; margin-right:5px}#dhp span{display:inline-block; width:49px; height:49px; position:absolute;top:5px;right:5px;background:url(dhp-stats.gif) no-repeat;}#dhp span.gx{background:red;}#dhp span.qj{background:green;}#dhp span.xj{background:blue;}</style><div id="container"> <div id="dhp"> <ul> <li><span state="新加">1</span></li> <li><span state="连载至40集">2</span></li> <li><span state="完结">3</span></li> </ul> </div> <div id="dhp"> <ul> <li><span state="新加"></span>1</li> <li><span state="连载至100集">2</span></li> <li><span state="完结"></span>3</li> </ul> </div></div>第一种方法:[推荐]将你所有的dhp用一个div包裹起来,然后再获取下面所有的span元素var dhp = document.getElementById("container");var child=dhp.getElementsByTagName('span');for(i = 0; i <child.length;i++){ var the = child[i]; for(var k = 0; k <= 1000; k++){ state = the.getAttribute('state'); if(state == '新加') the.className = 'xj'; if(state.indexOf('连载至' + [k] +'集') != -1) the.className = 'gx'; if(state == '完结') the.className = 'qj'; }}[仅参考]下面这种是一种参考方法,相对于第一种来讲,效率较低。思路就是:扩展了一个兼容IE下根据样式命名来获取对象的方法,然后进行遍历。而且结构设计也需要变更为:<style type="text/css">div,ul,li{ margin:0; padding:0;}ul,li{ list-style:none;position:relative;}.dhp{ width:500px; }.dhp li{ width:100px; height:150px; border:1px solid #ddd; padding:5px; float:left; margin-right:5px}.dhp span{display:inline-block; width:49px; height:49px; position:absolute;top:5px;right:5px;background:url(dhp-stats.gif) no-repeat;}.dhp span.gx{background:red;}.dhp span.qj{background:green;}.dhp span.xj{background:blue;}</style><div class="dhp"> <ul> <li><span state="新加">1</span></li> <li><span state="连载至40集">2</span></li> <li><span state="完结">3</span></li> </ul></div><div class="dhp"> <ul> <li><span state="新加"></span>1</li> <li><span state="连载至100集">2</span></li> <li><span state="完结"></span>3</li> </ul></div><script type="text/javascript">Array.prototype.inArray=function (value){for (var i=0;i<this.length;i++){if (this[i] == value){return true;}}return false};function getElementsByClassName(className){ if(document.getElementByClassName){ return document.getElementByClassName(className) } var eles=document.getElementsByTagName("*"),elements=[]; for(var i=0;i<eles.length;i++){ var arr=eles[i].className.split(' '); if(arr.inArray(className)){ elements.push(eles[i]); } } return elements;}var dhp = getElementsByClassName("dhp");for(i=0;i<dhp.length;i++){ var child=dhp[i].getElementsByTagName('span'); for(j = 0; j <child.length;j++){ var the = child[j]; for(var k = 0; k <= 1000; k++){ state = the.getAttribute('state'); if(state == '新加') the.className = 'xj'; if(state.indexOf('连载至' + [k] +'集') != -1) the.className = 'gx'; if(state == '完结') the.className = 'qj'; } }}</script>呵呵,有点罗嗦了,我权当练手了 获取拖动文件的路径? function 返回值问题 如何用JQ制作播放服务器切换? JS 读取 rar 中文件 请问怎样用javascript使cookie有效期为可选? 怎么使用JAVASCRIPT实现返回图形按钮的制作 根据传进的参数,怎样根据这个参数和另一个字符串的连接获得一个对象 求推荐好的jquery开源表格控件,可以锁列锁行 如何屏蔽图片不可以打印和保存? 我的VML怎么显示不出来? 在线文本编辑器 kindeditor 高分求解一个关于IE与Firefox下,textarea换行的问题。
第二:这种状态值,完全可以在后台输出之前进行处理。
第三:你这些状态太凌乱了,可能结构设计上存在问题。应该不至于一个对象会同时存在新加,连载,完结三种状态才是。普通也就是连载和完结两种状态,最多你再额外根据一个上架时间多长以内附加一个新加状态
第三:你如果一定要前端进行处理的话
<style type="text/css">
div,ul,li{ margin:0; padding:0;}
ul,li{ list-style:none;position:relative;}
#dhp{ width:500px; }#dhp li{ width:100px; height:150px; border:1px solid #ddd; padding:5px; float:left; margin-right:5px}#dhp span{display:inline-block; width:49px; height:49px; position:absolute;top:5px;right:5px;background:url(dhp-stats.gif) no-repeat;}#dhp span.gx{background:red;}
#dhp span.qj{background:green;}
#dhp span.xj{background:blue;}
</style>
<div id="container">
<div id="dhp">
<ul>
<li><span state="新加">1</span></li>
<li><span state="连载至40集">2</span></li>
<li><span state="完结">3</span></li>
</ul>
</div>
<div id="dhp">
<ul>
<li><span state="新加"></span>1</li>
<li><span state="连载至100集">2</span></li>
<li><span state="完结"></span>3</li>
</ul>
</div>
</div>
第一种方法:[推荐]将你所有的dhp用一个div包裹起来,然后再获取下面所有的span元素
var dhp = document.getElementById("container");
var child=dhp.getElementsByTagName('span');
for(i = 0; i <child.length;i++){
var the = child[i];
for(var k = 0; k <= 1000; k++){
state = the.getAttribute('state');
if(state == '新加') the.className = 'xj';
if(state.indexOf('连载至' + [k] +'集') != -1) the.className = 'gx';
if(state == '完结') the.className = 'qj';
}
}[仅参考]下面这种是一种参考方法,相对于第一种来讲,效率较低。思路就是:扩展了一个兼容IE下根据样式命名来获取对象的方法,然后进行遍历。而且结构设计也需要变更为:
<style type="text/css">
div,ul,li{ margin:0; padding:0;}
ul,li{ list-style:none;position:relative;}
.dhp{ width:500px; }.dhp li{ width:100px; height:150px; border:1px solid #ddd; padding:5px; float:left; margin-right:5px}.dhp span{display:inline-block; width:49px; height:49px; position:absolute;top:5px;right:5px;background:url(dhp-stats.gif) no-repeat;}.dhp span.gx{background:red;}
.dhp span.qj{background:green;}
.dhp span.xj{background:blue;}
</style>
<div class="dhp">
<ul>
<li><span state="新加">1</span></li>
<li><span state="连载至40集">2</span></li>
<li><span state="完结">3</span></li>
</ul>
</div>
<div class="dhp">
<ul>
<li><span state="新加"></span>1</li>
<li><span state="连载至100集">2</span></li>
<li><span state="完结"></span>3</li>
</ul>
</div>
<script type="text/javascript">
Array.prototype.inArray=function (value){for (var i=0;i<this.length;i++){if (this[i] == value){return true;}}return false};
function getElementsByClassName(className){
if(document.getElementByClassName){
return document.getElementByClassName(className)
}
var eles=document.getElementsByTagName("*"),elements=[];
for(var i=0;i<eles.length;i++){
var arr=eles[i].className.split(' ');
if(arr.inArray(className)){
elements.push(eles[i]);
}
}
return elements;
}var dhp = getElementsByClassName("dhp");
for(i=0;i<dhp.length;i++){
var child=dhp[i].getElementsByTagName('span');
for(j = 0; j <child.length;j++){
var the = child[j];
for(var k = 0; k <= 1000; k++){
state = the.getAttribute('state');
if(state == '新加') the.className = 'xj';
if(state.indexOf('连载至' + [k] +'集') != -1) the.className = 'gx';
if(state == '完结') the.className = 'qj';
}
}
}</script>
呵呵,有点罗嗦了,我权当练手了