如果一个班级出现在div中,为什么我没有得到?

时间:2015-11-05 13:12:19

标签: jquery html

我有以下div:

<div class="row hide alert-danger text-center h4 alert" 
 id="test 123" data-for="862">
Some Text.
</div>

当我写这篇文章时:$('#test 123').hasClass('hide') 我仍然是假的。

有任何线索吗? 提前谢谢。

6 个答案:

答案 0 :(得分:3)

根据html4以及html5标准,你不能拥有空格。

我不鼓励您使用此解决方案,但您可以使用属性相等选择器作为解决方法:

$('[id="test 123"]').hasClass('hide')

答案 1 :(得分:0)

将其更改为

<div class="row hide alert-danger text-center h4 alert" 
 id="test-123" data-for="862">
Some Text.
</div>

然后$('#test-123').hasClass('hide')应按预期工作。

jQuery空间指定另一个选择器的开始的东西。因此,它寻找&lt; 123&gt;元素中的元素,id为#test

答案 2 :(得分:0)

你的选择器现在的工作方式是,它在div #test中搜索123。将其更改为仅测试或test_123。

答案 3 :(得分:0)

更好的编码方法,我们应该遵循编码的规则和惯例,我们必须设置没有空格的DOM元素id,你需要将id更改为test_123(带空格)

答案 4 :(得分:0)

在CSS和jQuery选择器中,空格是descendant combinator。您的选择器 - #test 123 - 匹配&#34;类型<123>的元素,它们是具有id="test"&#34;的元素的后代。

此外,the HTML specification says(关于ID属性):

  

该值不得包含任何空格字符。

所以:

  • 将您的ID更改为有效身份
  • 更改选择器以匹配

这样:

id="test-123"

'#test-123'

答案 5 :(得分:-1)

你可以尝试这个:

<div class="row hide alert-danger text-center h4 alert" 
 id="test 123" data-for="862">
Some Text.
</div>

jquery的

$( "#test 123" ).hasClass( "hide" )