2

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)、未定義です。何か案は?

4

2 に答える 2

3

次のようなことを試してください (例: を非表示にする<li>):

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

そしてあなたのリンク:

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

$(this)アクションがどこから呼び出されたかをどのように知ることになっているので、関数内に存在しませんか? 参照を渡さないため、.$(this)以外のすべてを参照できます<a>

于 2008-09-13T10:04:41.137 に答える
1

次のようなものではないのはなぜですか:

<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();
});
于 2008-09-16T17:17:51.570 に答える