在jQuery选择器中转义方括号的这些不同方法之间有什么区别.
有正确或错误的方式还是这些都是正确的?我已经阅读了不同的答案(包括这个)但没有比较这种不同的方式.
HTML
<div name="name[1]"></div>
Run Code Online (Sandbox Code Playgroud)
jQuery的
$('div[name=name[1]]'); //wrong
$('div[name="name[1]"]'); //correct?
$('div[name="name\\[1\\]"]'); //correct?
$('div[name=name\\[1\\]]'); //correct?
Run Code Online (Sandbox Code Playgroud)
我问的所有correct?工作,是使用选择器的ok方式/语法?
编辑:
我在实际发布之前阅读了重复的建议答案,并没有解释差异或应该使用哪些......我现在从这个答案中得到了答案.
除了第一个错误的情况:$('div[name=name[1]]');抛出错误
unrecognized expression: div[name=name[1]]- 所有其他都可以使用,因为略有不同的原因.
说明:
$('div[name="name[1]"]') 是确定使用因为jQuery把name[1]作为一个字符串,而不是一个CSS/jQuery选择.所以没必要逃避它.
$('div[name="name\\[1\\]"]'),实际上是不必要的逃脱,但工作.jQuery读取name\\[1\\]为一个字符串,并在javascript中第一个反斜杠\转义第二个结果\[,这是相同的[.所以这个例子和前面的例子一样带有不必要的反斜杠.
$('div[name=name\\[1\\]]') 没问题,内部[]被转义,因此它们不会被混淆为CSS/jQuery选择器.
从jQuery文档:
要使用任何元字符(例如!"#$%&'()*+,./:; <=>?@ [] ^`{|}〜)作为名称的文字部分,必须使用两个反斜杠进行转义:\\.
好读:
| 归档时间: |
|
| 查看次数: |
304 次 |
| 最近记录: |