jquery select 所有 <a> 除了一些特殊的 <a>
jquery select all <a> beside some special <a>
对不起标题,不知道怎么形容更好。
我有以下结构:
<div id="content">
<ul id="linklist">
<li><a>...</a></li>
<li><a>...</a></li>
<li><a>...</a></li>
<li><a>...</a></li>
</ul>
<a>...</a>
<div> //variable depth of divs
<a>...</a>
</div>
</div>
我想 select #link列表中第三个和第四个旁边的所有 links ()。
我已经尝试了一些 jQuery select 或我找不到工作的。
$(":not(#linklist li:gt(2) a) a")
也显示了第三个和第四个 link。我想是因为 li 仍然存在于 "not".
的比赛中
正确的select或问题是什么?
您可以对要从选择中删除的两个索引使用 .not()
方法:
$('#linklist').find('a').not(':eq(2)').not(':eq(3)');
尝试:
$('#linklist li').not('li:nth-child(3)').not('li:nth-child(4)');
或:
$('#linklist li').not('li:gt(1)');
我会以不同的方式处理它。
为您不想 select 的元素指定一个唯一的 class 名称(即 .ignore
)
<li><a>...</a></li>
<li><a>...</a></li>
<li><a class="ignore-me">...</a></li>
<li><a class="ignore-me">...</a></li>
那么你可以简单地做:
a:not(.ignore-me)
这将更易于维护(即,如果您的 link 位置发生变化)并且同样适用于 jQuery 和 CSS。
希望对您有所帮助。
您的 :gt
选择器中的语法有点不对。 :gt
应该在 #linklist a
元素上,索引是从零开始的,所以应该是 1
。试试这个:
$('a:not(#linklist a:gt(1))')
试试这个:
$('#linklist li').not(":eq(3)").not(":eq(2)")
对不起标题,不知道怎么形容更好。
我有以下结构:
<div id="content">
<ul id="linklist">
<li><a>...</a></li>
<li><a>...</a></li>
<li><a>...</a></li>
<li><a>...</a></li>
</ul>
<a>...</a>
<div> //variable depth of divs
<a>...</a>
</div>
</div>
我想 select #link列表中第三个和第四个旁边的所有 links ()。
我已经尝试了一些 jQuery select 或我找不到工作的。
$(":not(#linklist li:gt(2) a) a")
也显示了第三个和第四个 link。我想是因为 li 仍然存在于 "not".
的比赛中正确的select或问题是什么?
您可以对要从选择中删除的两个索引使用 .not()
方法:
$('#linklist').find('a').not(':eq(2)').not(':eq(3)');
尝试:
$('#linklist li').not('li:nth-child(3)').not('li:nth-child(4)');
或:
$('#linklist li').not('li:gt(1)');
我会以不同的方式处理它。
为您不想 select 的元素指定一个唯一的 class 名称(即 .ignore
)
<li><a>...</a></li>
<li><a>...</a></li>
<li><a class="ignore-me">...</a></li>
<li><a class="ignore-me">...</a></li>
那么你可以简单地做:
a:not(.ignore-me)
这将更易于维护(即,如果您的 link 位置发生变化)并且同样适用于 jQuery 和 CSS。
希望对您有所帮助。
您的 :gt
选择器中的语法有点不对。 :gt
应该在 #linklist a
元素上,索引是从零开始的,所以应该是 1
。试试这个:
$('a:not(#linklist a:gt(1))')
试试这个:
$('#linklist li').not(":eq(3)").not(":eq(2)")