我一直在看其他一些例子,但不幸的是,它们并不完全相同。我正在尝试删除一些数据点击(这里省略了这部分,只需要id )。问题是它返回我想要的id的未定义的。
function deleteMessage(){
var $currentId = $(this).closest(".ulrecords").attr('id');
alert("ID: " + $currentId)
}
调用该方法的步骤如下
<a href="javascript:deleteMessage();" id="amessage">
HTML看起来如下所示
<ul class="chat-messages">
<ul id="msg_1234567890_a1bs2e" class="ulrecords">
<li>
John
<span>27 minutes ago</span>
<a href="javascript:deleteMessage();" id="amessage"> X</a>
</li>
<li id="limessage">
Some message here
</li>
</ul>
<ul id="msg_9234742878_73bhad" class="ulrecords">
<li>
John
<span>28 minutes ago</span>
<a href="javascript:deleteMessage();" id="amessage"> X</a>
</li>
<li id="limessage">
Some other message here
</li>
</ul>
</ul>
所以当我点击其中一个ul的时候,我想得到希望,任何人都可以给我指明正确的方向
发布于 2016-03-14 04:21:40
因为在您的情况下,this
是窗口。
要么传入对您单击的元素的引用
<a href="javascript:deleteMessage(this);" id="amessage">
和
function deleteMessage(elem){
var $currentId = $(elem).closest(".ulrecords").attr('id');
alert("ID: " + $currentId)
}
或者更好的是,使用eventListeners附加事件。
$(document).on("click", ".ulrecords", function () {
alert(this.id);
});
或
$(document).on("click", ".ulrecords a", function () {
var $currentId = $(this).closest(".ulrecords").attr('id');
});
ids也是单数的。
发布于 2016-03-14 04:26:34
您正在通过href链接调用该方法,该链接不设置要单击的元素的执行上下文。为了获得正确的元素,不要通过href调用该方法,而是向其附加一个单击处理程序。现在,您的锚有重复的ID,这是一个完全不同的问题,您需要修复。
我正在向示例中的所有锚添加一个类,以便使用jQuery轻松地选择它们。
<a href="javascript:deleteMessage();" class="my-button">X</a>
和JavaScript:
$(function () {
$(document).on("click", ".my-button", function () {
var $currentId = $(this).closest(".ulrecords").attr('id');
alert("ID: " + $currentId);
});
});
发布于 2016-03-14 04:28:41
$(document).ready(function() {
$('.delmsg').click(function() {
alert($(this).parent().parent('ul').attr('id'));
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="chat-messages">
<ul id="msg_1234567890_a1bs2e" class="ulrecords">
<li>John <span>27 minutes ago</span> <a href="javascript:deleteMessage();" class="delmsg">X</a></li>
<li id="limessage">Some message here</li>
</ul>
<ul id="msg_9234742878_73bhad" class="ulrecords">
<li>John <span>28 minutes ago</span> <a href="javascript:deleteMessage();" class="delmsg">X</a></li>
<li id="limessage">Some other message here</li>
</ul>
</ul>
https://stackoverflow.com/questions/35987351
复制