在Jquery中组合不同的属性选择器

时间:2016-12-02 15:31:15

标签: javascript jquery css

可以在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"});

第1行:如果找不到(“公开”,“仅限我”,“朋友”),请将颜色设置为“Violet”

3 个答案:

答案 0 :(得分: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>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

您可以使用jQuery&#39; :not()-Selector

$("a:not([data*='Public'])");

答案 2 :(得分:1)

是的,使用:not()

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

选择包含包含<a>

的数据属性的所有post代码

&#13;
&#13;
$('a:not([data-tooltip-content*="public"])').css('background-color', '#f00')
&#13;
<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>
&#13;
&#13;
&#13;