jquery - 按条件选择

标签 jquery jquery-selectors

我一直在尝试,但无法使其发挥作用。我有一个 ul class="first"。从模板中的所有 ul 的“first”中,我只需要选择那些包含 ul class="second"的内容,并将所选的 h2 href 更改为“#”。问题是,当我发现这个特定的“第一”和“第二”时,我可以毫无问题地更改“第二”参数,但我无法弄清楚如何影响“第一”。

这是同时包含 js 和 html 的链接: http://jsbin.com/acoqi/edit

HTML:

<ul id="Menu">
<li>
  <span id="primary">
      <h1>
          <a href="#">Bags</a>
      </h1>
  </span>
  <ul class="first">
      <li>
          <span id="secondary">
              <h2>
                  <a href="/category/category/bags_/">Bags</a>
              </h2>
          </span>
          <ul class="second">
              <li>
                  <h3>
                      <a href="/category/category/shoulderbag/">Shoulder Bags</a>
                  </h3>
              </li>
          </ul>
      </li>
      <li>
        ...
      </li>
  </ul>
</li>
<li>
  <ul class="first">
     <li>        
          <span id="secondary">
              <h2>
                  <a href="/category/category/bags_/">Bags</a>
              </h2>
          </span>          
    </li>
  </ul>

JS:

    var second = $(".second");
    if(second.length && second.closest(".first")) {
       $(".first h2 a").attr("href", "#");
    };

最佳答案

我认为您正在寻找 :has 选择器

$('ul.first:has(ul.second) h2 a').attr("href", "#");

或者,更接近您正在做的事情:

var second = $(".second");
if(second.length && second.closest(".first")) {
   second.closest(".first").find("h2 a").attr("href", "#");
};

关于jquery - 按条件选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2362115/

相关文章:

Jquery - 获取两个 Div 标签之间的文本

javascript - 在 threejs 中加载到 Material 上的 svg 的每个 <g> 标签上的鼠标事件

javascript - html输入末尾有一个不可去除的问号

javascript - 如何在具有 contenteditable 属性的 div 中应用文本样式

php - ReCAPTCHA Ajax API 图像定制?

javascript - 在包含克隆 dom 元素的数组上使用 jquery 选择器

javascript - 在 jQuery 中获取所有像我这样的元素?

不是 3n+6 的 Jquery nth-child

javascript - 如何在禁用的字段集中启用 div 元素?

javascript - 按照一定的模式扫描dom/网页并获取domtag