我在隐藏名称中包含撇号的div时遇到问题。隐藏使用此代码:
$("div[data-title='Contact']").hide()
一切都很完美,但问题发生在div被称为撇号时。我尝试了几种形式(见下文),但没有一种形式不起作用。
$("div[data-title='Offer's']").hide()
$("div[data-title='Offer/'s']").hide()
$("div[data-title='Offer's']").hide()
他们可以通过其他方式参考相应的div吗?
我应该补充一点,当我查看页面源时 - 标题以这种格式保存:
data-title="Offer's"
我查了一下:
'
/'
//'
\'
\\'
'
没什么......
答案 0 :(得分:4)
源中显示的属性值为Offer's
。这很棘手;它看起来像一个字符引用,但它是双重编码。 '
已编码为'
,但&
中的'
会被编码为&
。
当HTML解析器解码字符引用时,它只会将它们解码一次。因此,结果属性值实际上是Offer's
。 '
正好如下所示:&符号,后跟字符序列“an”,后跟分号。此字符串不会进一步解码为'
字符。
您在属性选择器中使用的值需要与值Offer's
匹配,而不是Offer's
,并且肯定不会与源中显示的双重编码Offer's
匹配。因此,正确的选择器是:
$("div[data-title='Offer's']").hide()
答案 1 :(得分:0)
试试这个:$("div[data-title='Offer\'s']").hide();
。
答案 2 :(得分:-1)