我有以下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')
我仍然得到錯誤。
任何線索? 在此先感謝。
我有以下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')
這是給定要求最相關的答案。+1 – AdityaParab
這是一個很好的答案,但您必須首先質疑ID爲什麼會有空間。來自HTML規範:**該值必須在元素的主子樹中的所有ID中唯一,並且必須至少包含一個字符。該值不得包含任何空格字符。** – TheCarver
@PaparazzoKid:是的。我會更新那部分。 –
將其更改爲
<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 #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")
請不要重複的答案!已經提供了與您的答案相同的答案。 – TheCarver
現在檢查它的先生@PaparazzoKid –
更好的辦法,我們應該遵循的規則和編碼的約定,我們要建立的DOM元素的id沒有空間,您需要將id更改爲test_123(空間不足)
在CSS和jQuery選擇器中,空格是descendant combinator。您的選擇器 - #test 123
- 匹配「元素的後代」類型的元素<123>
。
此外,the HTML specification says(約ID屬性):
的值必須不包含任何空格字符。
所以:
這樣的:
id="test-123"
'#test-123'
的ID不應包含空格 - 這是HTML5規範的一部分,我相信 –
從HTML specifica重要:** ID值在元素的主子樹中的所有ID中必須是唯一的,並且必須至少包含一個字符。該值不能包含任何空格字符。**。 – TheCarver