2016-12-02 28 views
0

在Jquery中可以做到这样的事情吗?在Jquery中结合不同的属性选择器

$("a[data-tooltip-content*!='Public')") - not containing any substring of "Public" 

意代码:

$("a[data-tooltip-content!*='Public'][data-tooltip-content!*='Only Me'][data-tooltip-content!*='friends']").closest(".userContentWrapper._5pcr,._2tdc").css({"background-color": "violet"}); 
$("a[data-tooltip-content*='Public']").closest(".userContentWrapper._5pcr,._2tdc").css({"background-color": "yellow"}); 
$("a[data-tooltip-content*='Only Me']").closest(".userContentWrapper._5pcr,._2tdc").css({"background-color": "lime"}); 
$("a[data-tooltip-content*='friends']").closest(".userContentWrapper._5pcr,._2tdc").css({"background-color": "cyan"}); 

一号线:如果( “公共”, “只有我”, “朋友”)都没有找到,设置颜色为“紫罗兰”

+0

您已经尝试了数据属性?而且,如果你这样做,确保你写的选择器是有效的(你显示的那个不是); –

+0

有没有什么不对?我已经尝试过,但它不工作! – jona

+0

我刚刚尝试重新编码它,这个选择器是绝对有效的,因为我能够调用css背景颜色'Facebook状态',除了第一行代码(紫罗兰),我已经尝试console.log之间的第一行的代码,并且在我运行不同的多属性选择器后,程序似乎停止运行。 – jona

回答

2

你的问题可能不是多个属性选择器,但与not选择器(它不存在)。

您不能将!用于“不包含”,但是您的可以使用使用:not([class*="Public"])

这里是一个工作示例(只是一个CSS的例子,但究竟可与jQuery的CSS选择器一样的:

div { 
 
    background: red; 
 
} 
 
div:not([class*="asd"]) { 
 
    background: green; 
 
}
<div class="asd">123</div> 
 
<div class="dsa">456</div> 
 
<div class="">789</div>

+0

感谢您的帮助!!! :) 我可以在更改此帖子的标题以获得更好的标题以防止误导的问题? – jona

1

是的,使用:not()

$('a:not([data-tooltip-content*="public"])') 

选择所有<a>标记,包含包含post

$('a:not([data-tooltip-content*="public"])').css('background-color', '#f00')
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a href="#" data-tooltip-content="public">a link</a> 
 
<a href="#" data-tooltip-content="private">another link</a> 
 
<a href="#" data-tooltip-content="help me">aaaaanother link</a> 
 
<a href="#" data-tooltip-content="public thingy">abbbnother link</a>