jquery隐藏的父级

时间:2009-07-11 15:24:25

标签: jquery

嗯,可能是一个简单的...下面的代码只适用于可见(show())元素如何让它选择第一个隐藏元素呢?

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>

3 个答案:

答案 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'});

我相信这基本上就是你要做的事情。

相关问题