извлечение текста с использованием this.text () и jquery - PullRequest
0 голосов
/ 07 августа 2009

Я пытаюсь получить текст внутри ссылки, на которую нажали, используя

    $(".ajax-append").click(function(event) { 
     $.get("includes/fight.php?name=test", function(html) { 

     console.log($(this).text());
     console.log($(this));

        // append the "ajax'd" data to the table body 
        $("table tbody").append(html); 
        // let the plugin know that we made a update 
        $("table").trigger("update"); 
        // set sorting column and direction, this will sort on the first and third column 
        var sorting = [[2,1],[0,0]]; 
        // sort on the first column 
        $("table").trigger("sorton",[sorting]); 
    }); 
    return false; 
}); 

разметка выглядит так

<div class="friend" id="friend6" style="padding 5px; height: 54px; margin-bottom: 10px;">
<div style="float: left; width: 54px;">
       <img style="border:2px solid #E1E1E1;" src="6.jpg"/>
</div>
<div id="name6" style="float: left; padding-top: 20px; padding-left: 10px; font-size: 14px; width: 200px">
    <a href="#" class="ajax-append" id="6">name 6</a>
</div>
</div>
<div class="friend" id="friend7" style="padding 5px; height: 54px; margin-bottom: 10px;">
<div style="float: left; width: 54px;">
    <img style="border:2px solid #E1E1E1;" src="7.jpg"/>
</div>
<div id="name7" style="float: left; padding-top: 20px; padding-left: 10px; font-size: 14px; width: 200px">
    <a href="#" class="ajax-append" id="7">name 7</a>
</div>

Я могу получить текст в теге привязки, если я использую определенный идентификатор, но я пытаюсь добиться этого с помощью $ (this), и сообщение об ошибке всегда неопределено.

Кто-нибудь может указать, что идет не так? или придумать лучший способ сделать это?

Спасибо.

Ответы [ 5 ]

4 голосов
/ 07 августа 2009

попробуйте это:

$(".ajax-append").click(function(event) { 
    var element=this;
     $.get("includes/fight.php?name=test", function(html) { 

     console.log($(element).text());
     console.log($(element));

        // append the "ajax'd" data to the table body 
        $("table tbody").append(html); 
        // let the plugin know that we made a update 
        $("table").trigger("update"); 
        // set sorting column and direction, this will sort on the first and third column 
        var sorting = [[2,1],[0,0]]; 
        // sort on the first column 
        $("table").trigger("sorton",[sorting]); 
    }); 
    return false; 
});
0 голосов
/ 12 сентября 2012

это ключевое слово в JavaScript будет зависеть от используемой области. Здесь вы находитесь в функции обратного вызова ajax.

Так что я верю this.responseText сработает. Проверьте это

0 голосов
/ 07 августа 2009
$(".ajax-append").each(function(){
     $(this).click(function(event) { 
          $.get("includes/fight.php?name=test", function(html) { 

          console.log($(this).text());
          console.log($(this));

             // append the "ajax'd" data to the table body 
             $("table tbody").append(html); 
             // let the plugin know that we made a update 
             $("table").trigger("update"); 
             // set sorting column and direction, this will sort on the first and third column 
             var sorting = [[2,1],[0,0]]; 
             // sort on the first column 
             $("table").trigger("sorton",[sorting]); 
         }); 
         return false; 
     }
});
0 голосов
/ 07 августа 2009

В контексте вашего кода $ (this) является запросом AJAX.

Самый простой способ - установить переменную перед вызовом AJAX и использовать ее в $ get.

0 голосов
/ 07 августа 2009

Это потому, что вы используете this в обратном вызове ajax, который больше не ссылается на элемент, по которому щелкают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...