4

タイトルと href 値を持つリンクのリストがあります。これらの値を個別に取得できるようにしたいのですが、常に最初のリンクの値を取得します。何故ですか? ここで私のフィドルを参照してください。ご覧のとおり、いずれかのリンクをクリックすると、常に最初のリンクから値が取得されます。これらの変数を設定するだけでは不十分だと思います。

var title = $('.mg_phones').attr('title');
var url = $('.mg_phones').attr('href');

何か案は?

4

3 に答える 3

12

クリックされた要素を参照する必要があります。

var title = $(this).attr('title');
var url = $(this).attr('href');
于 2013-01-14T08:39:24.230 に答える
2

コードを次のように変更する必要があります。

var title = $(this).attr('title').toLowerCase();
var url = $(this).attr('href');
于 2013-01-14T08:39:10.687 に答える
2

$(this)代わりに使用してください。問題は、$('.mg_phones')そのクラスを持つすべての要素の配列であり、アクセスすると、どの要素が$('.mg_phones').attr(...)必要かわからないため、最初の要素が選択されるということでした。

ただし$(this)、このコンテキストで現在クリックされているアイテムを指します。

$('.mg_phones').click(function (event) {
    event.preventDefault();
    var title = $(this).attr('title').toLowerCase(); //this changed
    var url = $(this).attr('href');  //this changed
      if (title.length != 0) {
          $('#test').text(title + ": " + url);
 }
于 2013-01-14T08:39:39.173 に答える