html代码是
<div class="content" id="content-27" data-id="27"> <h3 class="subsectionHead">
<span class="titlemark">26.1</span>
<a id="x1-2800026"></a>Header and Footer for all pages</h3>
以下jquery代码可以工作并返回27作为id。
$("#x1-2800026").closest("div").attr("id");
现在,如果html是
<div class="content" id="content-27" data-id="27"> <h3 class="subsectionHead">
<span class="titlemark">26.1</span>
<a id="x1-2800026.1"></a>Header and Footer for all pages</h3>
以下jquery代码不起作用...它返回undefined
$("#x1-2800026.1").closest("div").attr("id");
唯一的区别是小数位。第一种情况下的id是#x1-2800026,第二种情况是#x1-2800026.1 这个额外的小数位似乎导致了问题。怎么办呢?
答案 0 :(得分:1)
由于选择器是一个id,我们可以公平地假设属性选择器将为我们提供只有一个元素的集合。如果没有,则需要更正html
。
console.log($("[id='x1-2800026.1']").closest("div").attr("id"));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="content" id="content-27" data-id="27"> <h3 class="subsectionHead">
<span class="titlemark">26.1</span>
<a id="x1-2800026.1"></a>Header and Footer for all pages</h3>
</div>
答案 1 :(得分:0)
来自jQuery selectors API的转义规则如下
sync=true