用标题中的撇号隐藏div

时间:2014-07-26 11:01:35

标签: jquery html jquery-selectors

我在隐藏名称中包含撇号的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"

我查了一下:

 '
 /'
 //'
 \'
 \\'
 '

没什么......

3 个答案:

答案 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)

$("div[data-title='Offer\'s']").hide();有效。

以下是jsFiddle

以下是截图:

screenshot