为什么没有这个jQuery选择了一段时间的工作(Why doesn't this jquer

2019-07-19 14:19发布

我有一个ID一个div

<div id="updates-pane-user.followed_on">

这个jQuery选择作品

$("[id^='updates-pane']")

但这并不

$("#updates-pane-user.followed_on")

我看不出有什么不对.. ID名称可以包含句点吧? 我失去了一些东西明显?

Answer 1:

在后一种选择, . 用于表示一个类。 所以它寻找.followed_on类,它显然没有找到,因此没有匹配的新闻。

为了解决这个问题,我想你应该转义双反斜线点:

$("#updates-pane-user\\.followed_on")

按照jQuery的文档 :

使用任何元字符(如“#$%&'()* +,/ :; <=> @ [] ^`!?{|}〜)作为名称的文本部分,它必须转义与两个反斜杠:\\。例如,具有ID =“foo.bar”元件时,可以使用选择器$(“#FOO \\巴。”)。

在一般情况下,尽量不要使用期限或其他特殊字符在你的ID,以避免各地混乱。 “允许”是不一样的“好习惯”。



Answer 2:

是的,HTML5允许时期ID,但jQuery是不是由W3组织建设。 这只是最常见的情况进行了优化的工具库。

如果你的ID有一段时间,或任何其他字符做的jQuery解析它不仅仅是一个标识越多,那么你最好使用标准函数:

$(document.getElementById(yourId))

这是首选的解决方案,如果您的身份证来自一个变量。



Answer 3:

$("#updates-pane-user\\.followed_on") - 这应该作为每jQuery的文档

// Does not work
 $("#some:id")

 // Works!
 $("#some\\:id")

 // Does not work
 $("#some.id")

 // Works!
 $("#some\\.id")


Answer 4:

因为在该点的id ,其在jQuery的语法表示类选择属性。 这个选择是等效于选择节点作为:

<div id="updates-pane-user" class="followed_on">



Answer 5:

因为. 选择认为有以下名称类

$("#updates-pane-user.followed_on")

是指:找到ID =所有元素updates-pane-user具有类名followed_on



Answer 6:

使用此逃避你点:

$("#updates-pane-user\\.followed_on")

参考: http://docs.jquery.com/Frequently_Asked_Questions#How_do_I_select_an_element_by_an_ID_that_has_characters_used_in_CSS_notation.3F



Answer 7:

为了确保创建时期的jQuery识别模式问题。

jQuery的有三种类型选择的:

  1. "." 选择器装置选择由类名的元素。
  2. "#"选择器装置选择由ID的元素。
  3. 和元素选择器,其可以通过域名(选择元件divinput等)

你混淆了jQuery engine ID为您的命名约定。

它假设有一个DIV id="updates-pane-user"和应用class="followed_on" 。 在这种情况下, jQuery建议来使用转义序列// 。 下面应该是你的了Syntex选择的元素。

$("#updates-pane-user\\.followed_on");

检查出来这个错误小提琴和尝试使用纠正// : http://jsfiddle.net/ukJ8Z/

干杯!!



Answer 8:

金宝是答案是正确的,但你仍然可以使这项工作与转义字符\\

$("#updates-pane-user\\.followed_on")

具有两个(2)反斜杠逸出。

检查此链接为How do I select an element by an ID that has characters used in CSS notation?



Answer 9:

您也可以使用id属性选择,如:

$('[id="updates-pane-user.followed_on"]')

因为jQuery将把属性作为一个字符串,而不是一个jQuery类选择。



文章来源: Why doesn't this jquery selector with a period work