1

divonClickメソッドからJavascript関数を呼び出しています

<div onClick="sample_1(this)" />

このsample_1メソッドから、新しいdivを動的に作成し、そのdivにonclickイベントを追加して、sample_1関数のパラメーターから取得した「this」の値を渡そうとしていますが、「this」の値を渡すことができません。 2番目の方法へ:

function sample_1 (divSelected) {
    if (!$(divSelected).attr('disabled')) {
       $('div[id=sample_1]').append("<div id='sample_1_1" + categoryID + "' class='selectedActivityCategory' style='background-color:#d9eaf7;' > <img  src='../Images/close.png' onclick='sample_2(" + divSelected.value + ");' /> </div>");
    }

}


function sample_2(divSelected)
{
/* Some Code */
}

IE開発者ツールを調べているとき、オブジェクトのdivSelected値を渡す代わりに、onClickメソッドでこの動的なdiv「sample_1_1」を記述します。

sample_2([object HTMLDivElement]);

オブジェクトdivSelectedをsample_1からsample_2に渡すにはどうすればよいですか?

呼び出している最初のdivの参照にアクセスし、その参照をメソッドsample_1_1に渡そうとしています。そこから、新しいdivを作成し、その作成されたdivのonclickイベントを作成して、最初のdivの同じ参照を渡そうとしています。 sample_1_1メソッドで作成されたdivのonclickメソッドに。

4

2 に答える 2

1

あなたが何をしようとしているのかわかりません。通常のJavascriptにはプロパティthisがありません。value

divのコンテンツを取得しようとしている場合は、とを混同しています。これは、JQueryを介しthisて(ではなく)divのコンテンツを取得できるためです。$(this)value$(this).html()

したがって、考えられる解決策は次のようになります。

<div id="yourdiv">Content...</div>

$(document).ready(function() {
   $('#yourdiv').click(function() {
      sample_1($(this));
   });
});

function sample_1(div_selected) {
   alert("Contents are: " + div_selected.html());
}

ここであなたに小さな例を作りました...

于 2012-04-18T08:38:14.067 に答える
1

コメントで述べたように、div要素にはvalueプロパティがありません。div内のテキストにアクセスする場合は、innerHTMLを使用します。パラメータの受け渡しは実際には正常に機能します。ifステートメントを確認してください。

function sample_1 (divSelected) {
    alert(divSelected.innerHTML);
    sample_2(divSelected);

}


function sample_2(divSelected){
    /* Some Code */
    alert(divSelected.innerHTML);
}
于 2012-04-18T08:38:53.543 に答える