1
<li class="page_item"><a href="javascript:">A</a>
<ul class="children">
    <li class="page_item"><a href="">1</a></li>
    <li class="page_item"><a href="">2</a></li>
</ul>
</li>
<li class="page_item "><a href="">B</a>
<ul class="children">
    <li class="page_item"><a href="">1</a></li>
    <li class="page_item"><a href="">2</a></li>
    <li class="page_item"><a href="">3</a></li>
    <li class="page_item"><a href="">4</a></li>
</ul>
</li>

<li class="page_item "><a href="">C</a>
<ul class="children">
    <li class="page_item"><a href="">1</a></li>
    <li class="page_item"><a href="">2</a></li>
    <li class="page_item"><a href="">3</a></li>
    <li class="page_item"><a href="">4</a></li>
</ul>

<li class="page_item"><a href="javascript:"></a>ul.children 以外のすべての属性を変更するにはどうすればよいですか。

$('li.page_item a').not("ul.children").attr("href", "http://google.com");

動作していません。ありがとう

4

7 に答える 7

5

ulクラスのトップレベルを設定してparentから:

$('ul.parent > li.page_item > a').attr("href", "http://google.com");

デモはこちら

于 2013-03-27T23:03:09.603 に答える
4

一言で言えば:$("ul:not(.children) > li.page_item > a").attr("href","blah");。jQuery 疑似セレクターを使用すると、:not不要なもの (ul.children) をセット (ul) から除外できます。そこから、直子李、直子a。

これが役に立ったことを願っています。それでも不明な場合は、遠慮なくコメントしてください。さらに詳しく説明します。

PS: フィドル - http://jsfiddle.net/VsL5t/

于 2013-03-27T23:04:04.520 に答える
2
$('li.page_item a').not('.children a').attr("href", "http://google.com");

編集 - またはさらに具体的なフィルタリングの場合 (ただし、上記は回答の要件を満たしています):

$('li.page_item a').not('ul.children li.page_item a').attr("href", "http://google.com");
于 2013-03-27T23:07:10.627 に答える
1

1 つのオプションはhasメソッドを使用することです。

$('li.page_item')
         .has("ul.children")
         .children('a')
         .prop("href", "http://google.com");
于 2013-03-27T23:04:46.527 に答える
1

要素を反復処理し、 のない要素をスキップします.children

jsFiddle デモ

$('li.page_item a').each(function(){
 if( $('.children',this.parentNode).length == 0 ) return true;
 $(this).attr("href","http://www.google.com");
});
于 2013-03-27T23:03:15.723 に答える
0

あなたはあなたの試みに近づいていました。コレクションには要素が含まれており、セレクターは要素と一致するため、呼び出しのセレクターはnot何にも一致しません。セレクターに追加します。aula

$('li.page_item a').not("ul.children a").attr("href", "http://google.com");
于 2013-03-27T23:05:48.157 に答える
-2

直系子孫セレクターを使用します。

$('li.page_item > a').attr("href", "http://google.com");
于 2013-03-27T23:02:05.743 に答える