0

複数の要素を選択する必要があります。すべての要素にクラス ="org-box" が含まれています。そのボックス内には、href をキャプチャしたいリンクがあります。だから私はこれをします

$("a.org-box").click(function (e) {
 e.preventDefault();
 var link = $(e).html();
 $('.col-right').prepend("<b>" + link +"</b>");
})

私がいつも得るのはnullで、
var link = $(ea).attr("href").html();のような他のセレクターを試しました。

同じ運で。

その選択から得られるものを確認したところ、これが$("a.org-box")得られました-> b.fn.b.init[102]

これを行う$("a.org-box:first").attr("href");と、href が正しく取得さ$("a.org-box").attr("href");れますが、最初の 1 つだけが取得されます。

私は何を悪いのですか?? すべての a.org-box を選択し、クリック時に href をキャプチャする方法は?

4

3 に答える 3

2
<a href="http://google.com" class="org-box">Click to prepend Google</a>

--

$("a.org-box").on('click', function(e) {
    e.preventDefault();
    $('.col-right').prepend("<b>" + e.target.href +"</b>"); //http://google.com
});

フィドル

于 2012-08-17T20:10:43.323 に答える
0

あなたが使用することができます:

$("a.org-box").click(function (e) {
    $('.col-right').prepend('<b>' + $(this).attr('href') + '<b>');
    e.preventDefault();
});

thisイベントターゲット(クリックされたアイテム) で、e.targetに設定されます。、、、または を使用して同じバリアントのいずれかを使用できます。e.target$(this).attr('href')$(this).prop('href')this.hrefe.target

.text()リンクの内部テキスト ( ) が必要なのか、それとも属性が必要なのかはわかりませんhref。後者を想定しています。

于 2012-08-17T20:13:20.643 に答える
0

jQueryセレクターは一致したすべての要素を返すため、セレクターからそれらの要素のjQueryコレクションを取得しているため、イベントデータはイベントをトリガーした要素ではなく、正しい実装は次のようになります。

$(a.org-box).click(function(){
    var link = $(this).html();
    $('.col-right').prepend("<b>" + link +"</b>");
});

オブジェクトを使用していた$(this)場合と同じように、jQueryがコレクションを反復処理しているため、使用します要素を保持します。.each()this

于 2012-08-17T20:18:44.060 に答える