为什么这个var只选择第一个找到的元素?

时间:2013-10-01 21:30:13

标签: javascript jquery

我正在尝试选择具有以“Mod”开头的title属性的每个元素的特定父级,并将它们放在一个我可以轻松控制的var中。

var allMods= $('#main-element .object[title^="Mod"]').closest('.specific-parent');
$(allMods).hide();

但它只适用于第一个找到的元素,我无法理解如何将var设置为每个匹配,有人可以帮我一把吗?

2 个答案:

答案 0 :(得分:0)

它应该工作提供所有.object[title^="Mod"]元素都在#main-element容器中。

示例:Live Copy | Source

HTML:

<div id="main-element">
  <div class="specific-parent">
    <div class="object" title="Mod1">Mod1 - turns green</div>
  </div>
  <div class="specific-parent">
    <div class="object" title="Mod2">Mod2 - turns green</div>
  </div>
  <div class="specific-parent">
    <div class="object" title="Mod3">Mod3 - turns green</div>
  </div>
</div>
<div>
  <div class="specific-parent">
    <div class="object" title="Mod4">Mod4 - does <strong>not</strong> turn green</div>
  </div>
</div>

JavaScript的:

$('#main-element .object[title^="Mod"]').closest(".specific-parent").css("color", "green");

结果:只有.specific-parents内的.object[title^="Mod"]#main-element元素变为绿色。

答案 1 :(得分:0)

根据Docs

  

对于集合中的每个元素,通过测试元素本身并遍历DOM树中的祖先来获取与选择器匹配的第一个元素。

你可能想要.parents()(注意S,。parent()也只返回一个元素)