如何从选定的文本中获取最接近的元素

时间:2019-06-07 10:45:49

标签: javascript jquery

我正在尝试从下面的html中选择文本3 This is时获得最接近的锚标记。

所以我想获得最接近的锚标签ID。

所以我想获得ID为a_3的锚标签或ID为sp_3的标签跨度

<a id="a_1"></a><span id="sp_1">1</span><value>This is the text 1</value>
<a id="a_2"></a><span id="sp_2">2</span><value>This is the text 2</value>
<a id="a_3"></a><span id="sp_3">3</span><value>This is the text 3</value>
<a id="a_4"></a><span id="sp_4">4</span><value>This is the text 4</value>

var anchorTag = $('#sp_3').closest("A");

预期的输出是        <a id="a_3"></a> 但它回来了

init [prevObject: init(1), context: undefined]

请帮助我

2 个答案:

答案 0 :(得分:1)

使用prevspan没有嵌套在anchor中,它是同级的。因此,closest将不起作用。 closest开始在元素本身上搜索selector,并遍历其祖先。

var anchorTag = $('#sp_3').prev('a');

var anchorTag = $('#sp_3').prev('a');
console.log(anchorTag[0]);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a id="a_1"></a><span id="sp_1">1</span>
<value>This is the text 1</value>
<a id="a_2"></a><span id="sp_2">2</span>
<value>This is the text 2</value>
<a id="a_3"></a><span id="sp_3">3</span>
<value>This is the text 3</value>
<a id="a_4"></a><span id="sp_4">4</span>
<value>This is the text 4</value>

答案 1 :(得分:0)

您可以简单地在要单击的特定元素上使用click事件。 尝试将其与您的问题联系起来可能会有所帮助。 :)

$("#myid").on("click",function(){
alert(this.id);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="#" id="myid"><span id="spanID">click here</span></a>