Jquery的
$(".postSelectedRules").each(function() {
$(this).parents("#idruleB-"+$(this).attr("id").substr(8)+":hidden:first").css('background', '#bbbbbb');
});
HTML
<a id="idruleA-1" class="postSelectedRules" href="#">1</a>
<div class="postStuff">
<div class="postRules">
<span id="idruleB-1" class="postRulesSelect">1</span>
<span id="idruleB-2" class="postRulesSelect">2</span>
</div>
</div>
答案 0 :(得分:4)
你的代码没有多大意义。您是否在匹配节点的父节点中搜索与当前节点具有相同ID的节点? ID 应该唯一。
至于排除隐藏物品,一般形式如下:
$(this).parents(":someClass:visible:first").addClass("blah");
而不是:
css('background', '#bbbbbb');
如果可能,我高度建议使用类。添加和删除CSS属性是有问题的。课很容易。
答案 1 :(得分:0)
你可以用
完成$(".postSelectedRules:hidden").each(function() {
$(this).parents("#"+$(this).attr("id")).css('background', '#bbbbbb');
});
隐藏在选择器中:查找隐藏的项目。
我希望有所帮助。
答案 2 :(得分:0)
仅供参考...你永远不应该有重复的身份证。如果你确定这一点,你会发现你的代码运行得更快。在这种情况下使用Class会更有意义。
我们假设您的XHTML是这样的:
<div class="someClass" style="display:block;" id="someElement_1">
<div class="postSelectedRules"></div>
</div>
<div class="someClass" style="display:none;" id="someElement_2">
<div class="postSelectedRules"></div>
</div>
<div class="someClass" style="display:none;" id="someElement_3">
<div class="postSelectedRules"></div>
</div>
您可以选择“#someElement_3”(第一个隐藏元素):
$('.someClass:hidden:first').css({backgroundColor:'#bbb'});
我相信这基本上就是你要做的事情。