我正在研究一些前端功能。實際上,我正在做Ajax請求並在調用que後修改UI。JQuery CSS選擇器奇怪的行爲,爲什麼?
我確定相關項目/視圖,以我的模型(前)使用,因爲我通過組合類+ ID選擇不同的項目,這將不會是唯一的ID。
簡單的例子:
<div id="23"class="status_ic btn btn-info">Status Name</div>
<div class="botones_applies" id="23">
<div class="btn btn-xs btn-primary btn-acept" id="23">
Acept
</div>
<div class="btn btn-xs btn-borrar btn-danger btn-deny" id="23">
Deny
</div>
</div>
我這樣做:
$('.botones_applies#23').empty();
status_btn = $('.status_ic#23');
status_btn.removeClass('btn-info');
status_btn.addClass('btn-primary');
status_btn.text('Acepted');
我沒有使用這種選擇沒有任何問題,但在這裏,我遇到了奇怪的行爲,更多的意見我第一個選擇器不工作,而另一個工作,他們使用相同的邏輯。我注意到,如果我將訂單更改爲$('#23.botones_applies')
,則按預期工作。我可以做到這一點,因爲不會破壞任何東西,但我擔心爲什麼會發生這種情況。
$('.botones_applies#23') ---> doesn't work
$('#23.botones_applies') ---> works
$('.status_ic#23') ---> works
有沒有我缺少的一些CSS或jQuery規則?也許一些愚蠢的小東西...也許我忘了一些重要的概念..有人會解釋我這個?謝謝!
'id'值**必須在文檔中是唯一的,所以這是您應該解決的問題,之後這個問題可能會消失。 –
也'ID'值必須以字母開頭,而不是數字... –
@MartinAdámek:不,這是不正確的; HTML只關心它們不包含空格。但是如果用CSS開頭的話,使用CSS來選擇它們會更困難,因爲在CSS ID選擇器中''不能(正式)使用數字作爲第一個字符。 –