Javascript中的选择器

Javascript中的选择器,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我是Javascript的初学者。我有一个链接列表,我想选择以.zip结尾的链接,并从css中添加类zip 添加选择链接以not.zip结尾,并从css中添加类notzip 我用 $([a[href$='.zip']).addClass(“zip”)来执行第一个任务,但无法通过添加来执行任务2!或者不是()。建议使用$this和位置、过滤器功能。我该怎么做 <ul> <li><a href="a.html">a</a></

我是Javascript的初学者。我有一个链接列表,我想选择以.zip结尾的链接,并从css中添加类zip

添加选择链接以not.zip结尾,并从css中添加类notzip

我用
$([a[href$='.zip']).addClass(“zip”)
来执行第一个任务,但无法通过添加来执行任务2!或者不是()。建议使用$this和位置、过滤器功能。我该怎么做

      <ul>
    <li><a href="a.html">a</a></li>
    <li><a href="b.pdf">b</a></li>
    <li><a href="c.zip">c</a></li>
  </ul>
您可以利用:

$(函数(){
$(“a[href$='.zip']).addClass('zip');
$(“a:not([href$='.zip']))).addClass('notzip');
$((a:not([href$='.zip']):not([href$='.html']))).addClass('notzipnorhtml');
var exts=['html','pdf','zip'];
$('a'+exts.map(ext=>':not([href$='+ext+'“])).join(“”))
.addClass('notanyof these');
});
.zip{颜色:绿色;}
.notzip{颜色:红色;}
.notzipnorhtml{color:purple;}
.notanyof这些{颜色:蓝色;}

您可以利用:

$(函数(){
$(“a[href$='.zip']).addClass('zip');
$(“a:not([href$='.zip']))).addClass('notzip');
$((a:not([href$='.zip']):not([href$='.html']))).addClass('notzipnorhtml');
var exts=['html','pdf','zip'];
$('a'+exts.map(ext=>':not([href$='+ext+'“])).join(“”))
.addClass('notanyof these');
});
.zip{颜色:绿色;}
.notzip{颜色:红色;}
.notzipnorhtml{color:purple;}
.notanyof这些{颜色:蓝色;}

如果我理解正确, 这应该管用

$("a[href='.zip']").addClass("zip");
$("a[href!='.zip']").addClass("notzip");
如果我理解正确, 这应该管用

$("a[href='.zip']").addClass("zip");
$("a[href!='.zip']").addClass("notzip");

谢谢它起作用了。似乎问题出现在逻辑部分,当我以前使用“not”时<代码>$(“a:not([href$='.zip']))).addClass('notzip')
包含
$(“a[href$='.zip']”)的结果。addClass('zip')将类“notzip”添加到没有.zip或.html后缀的href时。为什么会这样?@JiayanYang我不明白你的问题。你能展示一下你是如何在你的案例中使用
:not
,看看可能出了什么问题吗?@JetoThe
:not
效果很好。但是,当我
$(a:not([href$='.zip | | html'))时,结果包括
$([a[href$='.zip'])addClass('zip')。在您的示例中,绿色也变为红色。
$(“a:not([href$='.zip | | html'))
不正确。你想达到什么目标?要匹配任何不以.zip或.html结尾的内容?@JetoExactly。想要查找除href以.zip或.html结尾以外的任何内容。这就是为什么我说“我以前用“not()”时,逻辑部分似乎出现了问题。”对不起,我的英语很差:)谢谢。它起作用了。似乎问题出现在逻辑部分,当我以前使用“not”时<代码>$(“a:not([href$='.zip']))).addClass('notzip')
包含
$(“a[href$='.zip']”)的结果。addClass('zip')将类“notzip”添加到没有.zip或.html后缀的href时。为什么会这样?@JiayanYang我不明白你的问题。你能展示一下你是如何在你的案例中使用
:not
,看看可能出了什么问题吗?@JetoThe
:not
效果很好。但是,当我
$(a:not([href$='.zip | | html'))时,结果包括
$([a[href$='.zip'])addClass('zip')。在您的示例中,绿色也变为红色。
$(“a:not([href$='.zip | | html'))
不正确。你想达到什么目标?要匹配任何不以.zip或.html结尾的内容?@JetoExactly。想要查找除href以.zip或.html结尾以外的任何内容。这就是为什么我说“我以前使用“not()”时,逻辑部分似乎出现了问题。”对不起,我的英语很差:)@testingKikiHi谢谢你的建议。我认为
href='.zip'
应该是
href$='.zip'
,因为我需要为href添加类,以.zip结尾。:)@谢谢你的建议。我认为
href='.zip'
应该是
href$='.zip'
,因为我需要为href添加类,以.zip结尾。:)