我正在使用 jQuery。我用下一个 html 调用 JavaScript 函数:

<li><span><a href="javascript:uncheckEl('tagVO-$id')">$tagname</a></span></li>

我想删除 li 元素,我认为这会很容易 $(this) 目的。这是我的 JavaScript 函数:

function uncheckEl(id) {
    $("#"+id+"").attr("checked","");
    $("#"+id+"").parent("li").css("color","black");                 
    $(this).parent("li").remove();  // This is not working
    retrieveItems();
}

$(this) 未定义。有任何想法吗?

有帮助吗?

解决方案

尝试这样的事情(例如隐藏 <li>):

function unCheckEl(id, ref) {
  (...)
  $(ref).parent().parent().hide(); // this should be your <li>
}

还有你的链接:

<a href="javascript:uncheckEl('tagVO-$id', \$(this))">

$(this) 不存在于您的函数内部,因为它应该如何知道从哪里调用该操作?你没有在其中传递任何引用,所以 $(this) 可以指除 <a>.

其他提示

为什么不类似:

<li id="uncheck_tagVO-$id">$tagname</li>

$('li').click( function() {
    var id = this.id.split("_")[1];
    $('#'+id).attr("checked","").parent("li").css("color","black"); 
    $(this).remove();
    retrieveItems();
});
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top