我正在研究一些前端功能。实际上,我正在做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选择器中''不能(正式)使用数字作为第一个字符。 –