Jquery 条件选择

Jquery 条件选择,jquery,jquery-selectors,Jquery,Jquery Selectors,我试了又试,没法让它工作。我有一个ul class=“第一”。从模板中的所有ul的“first”中,我只需要选择那些包含ul class=“second”的,并将h2 href更改为“#”。问题是,当我找到这个特定的“第一”和“第二”时,我可以毫无问题地更改“第二”参数,但我无法想出如何影响“第一” 以下是同时使用js和html的链接: HTML: <ul id="Menu"> <li> <span id="primary"> <h1&

我试了又试,没法让它工作。我有一个ul class=“第一”。从模板中的所有ul的“first”中,我只需要选择那些包含ul class=“second”的,并将h2 href更改为“#”。问题是,当我找到这个特定的“第一”和“第二”时,我可以毫无问题地更改“第二”参数,但我无法想出如何影响“第一”

以下是同时使用js和html的链接:

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>
我想你是在找:has选择器 或者,更接近你正在做的事情:

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

好极了,这就是我要找的!
$('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", "#");
};