jQuery selector | = in $(“[name | ='value']”)

时间:2015-10-23 10:12:54

标签: javascript jquery jquery-selectors

我在一些javascript代码中找到了这个代码段:

var name = "someString";
var s = "[name|='"+name+"']";
var nArr = $JQ(s);

有人可以解释|=的作用吗?

我可以在我的调试工具中看到我收到一个jQuery元素数组,它们的名字都有someString。但我无法在jQuery文档中找到解释。我错过了什么?

1 个答案:

答案 0 :(得分:4)

这是attribute contains prefix selector

  

选择具有指定属性的元素,其值等于给定字符串或以该字符串后跟连字符( - )开头。

$("a[hreflang|='en']").css("color", "green");
a {
  display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<a href="example.html" hreflang="en">Some text</a>
<a href="example.html" hreflang="en-UK">Some other text</a>
<a href="example.html" hreflang="english">will not be selected</a>

这个选择器被引入到CSS规范中以处理语言属性。

W3

  

表示具有att属性的元素,其值正好是“val”或以“val”开头,后跟“ - ”(U + 002D)。这主要是为了允许语言子代码匹配(例如,HTML中元素的hreflang属性),如BCP 47([BCP47])或其后继者所述。