jQuery找到多个级别的子元素

时间:2015-10-05 21:41:57

标签: javascript jquery html

我有:

<div id="d1">
<label>title</label>
 <div class="col">
  <select id="location.state.id">...</select>
 </div>
</div>

基本上,我想禁用/启用<select>。我有类似的东西:

$("#d1").find("#location.state.id").prop("disabled", true);

它不起作用。我错过了什么?

2 个答案:

答案 0 :(得分:1)

问题是,您的id属性中包含.的值。

由于.是类名的CSS选择器,jQuery将查找标识为location且CSS类stateid的项目,而不是ID为location.state.id的元素。

您必须在\\之前使用.在查询选择器中使用它们(在CSS中,只有\会很好):

$('#d1').find('location\\.state\\.id').prop('disabled', true);

引用jQuery API

  

使用任何元字符(例如   !"#$%&'()*+,./:;<=>?@[\]^``{|}~)作为名称的字面部分,它必须   使用两个反斜杠进行转义:\\。例如,一个元素   id="foo.bar",可以使用选择器$("#foo\\.bar")

答案 1 :(得分:0)

JQuery API

如果要转义特殊字符,请使用\。在你的情况下:

$("#d1").find("#location\\.state\\.id").prop("disabled", true);