Javascript 如何获取元素周围的id?
我有以下代码,我正在尝试确定a元素的id:Javascript 如何获取元素周围的id?,javascript,jquery,Javascript,Jquery,我有以下代码,我正在尝试确定a元素的id: <li> <a class="selectTour" id="32"> <span>Bla</span> <div class="margin-top-2"><font style="white-space:normal; font-size: small">Test 22</font></div> <p class="ui-l
<li>
<a class="selectTour" id="32">
<span>Bla</span>
<div class="margin-top-2"><font style="white-space:normal; font-size: small">Test 22</font></div>
<p class="ui-li-aside"><strong>Created</strong>
</a>
</li>
问题是,当用户单击(例如)字体元素(或a元素以外的其他元素)时,返回错误的id。在我看来,这是一个标准的javascript/jquery问题,但我无法理解,需要向正确的方向推进。您可以使用来查找最接近的点击目标的selectTour
元素,然后使用来获取其id
selectTour: function (event) {
$.mobile.loading("show");
var tour_id = $(event.target).closest('.selectTour').attr('id');
this.router.navigate("tour/" + tour_id, {
trigger: true
})
},
如果单击处理程序的目标是
selectTour
元素,您甚至可以尝试e.currentTarget.id
选择Tour
元素,然后使用获取其id
selectTour: function (event) {
$.mobile.loading("show");
var tour_id = $(event.target).closest('.selectTour').attr('id');
this.router.navigate("tour/" + tour_id, {
trigger: true
})
},
如果单击处理程序的目标是
selectTour
元素,您甚至可以尝试e.currentTarget.id
var tour_id = ($(event.target)[0].id.length) ? $(event.target)[0].id : $(event.target).closest('a.selectTour')[0].id;
因为您的
event.target
元素并不总是selectTour
,因此它不会为您获取它的id,因此,当您使用jQuery时,您可以检查id长度(如果可用),然后在事件的情况下分配id,否则。target
不是selectTour
,然后使用.closest()
遍历到selectTour
,将id获取并分配给var tour\u id
使用jQuery的
.attr()
:
我认为你应该这样改变你的剧本:
var tour_id = ($(event.target)[0].id.length) ? $(event.target)[0].id : $(event.target).closest('a.selectTour')[0].id;
因为您的
event.target
元素并不总是selectTour
,因此它不会为您获取它的id,因此,当您使用jQuery时,您可以检查id长度(如果可用),然后在事件的情况下分配id,否则。target
不是selectTour
,然后使用.closest()
遍历到selectTour
,将id获取并分配给var tour\u id
使用jQuery的
.attr()
:
这件事给了我32分,我认为这是正确的
$('.selectTour').bind('click',function(e){
alert($(this).attr('id'));
});
这件事给了我32分,我认为这是正确的
$('.selectTour').bind('click',function(e){
alert($(this).attr('id'));
});
难道你不想在字体元素的onclick函数中使用
this.parentNode.parentNode.id
吗?谢谢你的回答,但这里的问题是用户并不总是单击字体元素。这在你的问题和标题中是不清楚的,你可能想澄清一下。您询问元素周围的id,您的文本说明您可以使用classselectTour
在元素上附加事件,当用户单击字体元素时,返回错误的id。我很困惑。。。为什么不将onclick事件添加到类为“selectTour”的锚中,并在该函数中使用相应编辑的this.id
?使其更清晰。谢谢你的评论,没问题。但我还是很困惑。。。为什么不将onclick事件添加到类为“selectTour”的锚中,并在此函数中使用this.id
?此外,href元素指的是锚的href属性?难道你不想在字体元素的onclick函数中使用this.parentNode.parentNode.id
吗?谢谢你的回答,但这里的问题是用户并不总是单击字体元素。这在你的问题和标题中不清楚,你可能想澄清一下。您询问元素周围的id,您的文本说明您可以使用classselectTour
在元素上附加事件,当用户单击字体元素时,返回错误的id。我很困惑。。。为什么不将onclick事件添加到类为“selectTour”的锚中,并在该函数中使用相应编辑的this.id
?使其更清晰。谢谢你的评论,没问题。但我还是很困惑。。。为什么不将onclick事件添加到类为“selectTour”的锚中,并在此函数中使用this.id
?此外,href元素指的是主播的href属性?谢谢你的回复,但是。selectTour出现了n次。这是你一直在寻找的吗?谢谢你的回复,但是。selectTour出现了n次。这也是你一直在寻找的吗?这部作品似乎也更防弹。比阿伦的回答——你同意吗?如果你问我,我会说是的,这是必须的。这就是我刚才所做的这也很管用,对我来说似乎也更防弹。比阿伦的回答——你同意吗?如果你问我,我会说是的,这是必须的。这就是我刚才所做的