为什么我不知道div中是否存在类



我有以下div:

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

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

有线索吗?提前谢谢。

根据html4和html5标准,其中不能有空格。

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

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

将其更改为

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

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

jQuery表示空格指定了另一个选择器的开始。所以它寻找一个<123>元素中带有id#test 的元素

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

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

在CSS和jQuery选择器中,空间是子组合子。选择器#test 123匹配"<123>类型的元素,这些元素是具有id="test"的元素的后代"。

此外,HTML规范中说(关于ID属性):

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

因此:

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

例如:

id="test-123"
'#test-123'

你可以试试这个:

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

jquery

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

最新更新