0

onclickHTMLイベントのjquery関数でパラメーターを渡したいjqueryの問題で立ち往生しています。

HTML:

 <p><a href="#" class='cls1' onclick='func1("a1")'>Anchor1</a></p>
 <div><a href="#" class='cls1' onclick='func1("a2")'>Anchor2</a><div>
 <span><a href="#" class='cls1' onclick='func1("a3")'>Anchor3</a></span>

JQUERY:

 function func1(var param)
 {
    var parnt = $(this).parent(); // i want to get parent, this only gives [object object]
    alert('Parent:'+parnt+' param:'+param) //alert parnt and param
    return false;
 }

私はそれが簡単なことを知っていますが、私は先に進むための正しい方向を見つけることができません。どんなガイダンスでも心から感謝します。ありがとうございました。

4

5 に答える 5

2

アクセスする属性を指定する必要があるため、親メソッドの結果でオブジェクトを取得します。

$(".cls1").on("click", function(){

    var clickedID = $(this).attr("id"); // result :  "a1 or a2 or a3"

    var parentTag = $(this).parent().get(0).tagName;
}
于 2013-03-01T11:42:58.053 に答える
2

アラートボックスは文字列にのみアラートを送信できます。オブジェクトを表示する場合は、を使用しますconsole.log()。IEを除くすべてのブラウザで動作します。また、「var」を削除します

function func1(var param){

}

また、関数をクリックイベントにバインドする場合は、次を使用します。on()

于 2013-03-01T11:25:04.690 に答える
2

問題は、「this」が渡されるオブジェクトへの参照を持たないことです。回避策は次のとおりです。

onclick='func1(this,"a1")'

関数を次のように変更します。

 function func1(obj,param)
 {
    var parnt = $(obj).parent();
    alert('Parent:'+parnt+' param:'+param) //alert parnt and param
    return false;
 }
于 2013-03-01T11:26:21.727 に答える
1
<a href="#" class='cls1' onclick="func1(\'' + a1 + '\')">Anchor1</a></p>
 <div><a href="#" class='cls1' onclick="func1(\'' +a2+ '\')">Anchor2</a><div>
 <span><a href="#" class='cls1' onclick="func1(\'' + a3 + '\')">Anchor3</a></span>

このような関数を呼び出します。

function func1(param)
 {
    var parnt = $(param).parent(); // i want to get parent, this only gives [object object]
    alert('Parent:'+parnt+' param:'+param) //alert parnt and param
    return false;
 }

このような文字列を渡すときは、エスケープ文字を使用する必要があります。(\'' + a1 + '\')

于 2013-03-01T11:22:51.963 に答える
1
  1. HTMLのonclick属性を取り除き、JSでイベント処理をバインドできます。
  2. 1つのイベントハンドラーを割り当ててすべての要素を処理し、「this」変数を分析することでクリックされた要素を判別できます。
  3. console.logとconsole.dirを使用して、変数が何であるかをよりよく理解してください。
  4. ドキュメントとチュートリアルを読んでください-あなたがしていることは非常に些細なことであり、それについて書かれたものがたくさんあります:http: //api.jquery.com/category/events/ + http://justfuckinggoogleit.com/
  5. イベント伝播モデルを理解する

私はあなたのためにコードを書くことができたかもしれませんが、あなたが自分自身を学ぶことが重要だと思います。幸運を!

于 2013-03-01T11:25:17.380 に答える