jquery选择器的元素id中的小数位

时间:2018-06-14 05:58:11

标签: javascript jquery

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 这个额外的小数位似乎导致了问题。怎么办呢?

2 个答案:

答案 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