[英]jQuery on button click find tag of <li>
我有以下代码:
<ul data-role='listview' id='the-listview' data-inset='true' data-corners='false'>
<li data-tag="<?php echo $id . "|" . "age"; ?>">
<img src='images/photo.png' class='main-photo'/>
<label class='name'><?php echo $name; ?></label>
<p class='country'><?php echo $country; ?></p>
<img src='images/edit.png' id='edit-info' style='cursor: pointer'/>
</li>
</ul>
我想点击图片“edit-info”,检索<li data-tag>
值。 尝试失败:
$("#edit-info").on("click", function(){
alert($(this).find('li').attr('data-tag'));
});
它检索'undefined'。
您不能在此上下文中使用.find()
。 它将寻找descendants
。 .Closest()
将是正确的选择,因为它将向上移动DOM树并根据selector
选择元素。
尝试,
$("#edit-info").on("click", function(){
alert($(this).closest('li').data('tag'));
});
find()
旨在查找子元素。 在这种情况下, li
是父元素,因此使用closest()
代替:
alert($(this).closest('li').attr('data-tag'));
那是因为你没有使用正确的属性。
如果你想使用find()
请先请
转到父元素
然后找到孩子!
像这样:
$(this).parent().attr('data-tag')
这会奏效!
此代码将转到父元素; 因为图像在li
所在的元素中。因此,find只能找到子元素。 因此,使用.parent()
转到父元素,然后使用find()
返回其子元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.