2015-11-05 26 views
1

我有以下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') 我仍然得到錯誤。

任何線索? 在此先感謝。

+0

的ID不應包含空格 - 這是HTML5規範的一部分,我相信 –

+0

從HTML specifica重要:** ID值在元素的主子樹中的所有ID中必須是唯一的,並且必須至少包含一個字符。該值不能包含任何空格字符。**。 – TheCarver

回答

3

按照html4以及html5標準,你不能有空白。

我不建議您使用此解決方案,但你可以使用屬性等於選擇作爲一種解決方法:

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

這是給定要求最相關的答案。+1 – AdityaParab

+0

這是一個很好的答案,但您必須首先質疑ID爲什麼會有空間。來自HTML規範:**該值必須在元素的主子樹中的所有ID中唯一,並且必須至少包含一個字符。該值不得包含任何空格字符。** – TheCarver

+1

@PaparazzoKid:是的。我會更新那部分。 –

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事物空間指定另一個選擇器的開始。所以它尋找一個< 123>你的元素內的元素與id #test

0

你的選擇器的工作方式現在,它是在你的div #test中搜索123。將其更改爲僅測試,或者test_123。

-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") 
+0

請不要重複的答案!已經提供了與您的答案相同的答案。 – TheCarver

+0

現在檢查它的先生@PaparazzoKid –

0

更好的辦法,我們應該遵循的規則和編碼的約定,我們要建立的DOM元素的id沒有空間,您需要將id更改爲test_123(空間不足)

0

在CSS和jQuery選擇器中,空格是descendant combinator。您的選擇器 - #test 123 - 匹配「元素的後代」類型的元素<123>

此外,the HTML specification says(約ID屬性):

的值必須不包含任何空格字符。

所以:

  • 更改您的ID,以一個有效的
  • 更改選擇匹配

這樣的:

id="test-123" 

'#test-123' 
相關問題