0

我是 jquery 的新手。我有一个名为“xxx”的类,其中添加了一组类名为“YYY”的按钮,并通过ajax调用更改每个按钮的id值。

例如

<div class="xxx">
</div> <!-- before ajax call -->



<div class="xxx">
<input type="button" class="YYY" id="1"/>
<input type="button" class="YYY" id="2"/>
<input type="button" class="YYY" id="3"/>
</div>

现在我必须获取“on”单击按钮的 id 值。所以我用

$(document).ready(function{

$('.xxx').on('click','.yyy',function({
   var id = $(this).attr('id');
});

});

但这不起作用。即使我尝试过

$(document).ready(function{

$('.xxx').on('click','.yyy',function({
   var id = $('.yyy').attr('id');
});

});

这是在每次点击时返回第一个按钮的值。请帮忙

4

5 回答 5

1

您需要使用this来引用单击的元素:

var id = this.id;

您的.ready()and.on()函数中还有一些语法错误,正确的语法是:

$(document).ready(function() {
  $('.xxx').on('click', '.yyy', function() {
    var id = this.id;
  });
});
于 2013-04-10T07:02:36.507 回答
0

您的脚本中有一些拼写错误:

$(document).ready(function{ //<----misssing '()'

$('.xxx').on('click','.yyy',function({ //<---missing ')' after function

您已经在选择器的上下文中,然后使用this.idor $(this).attr('id')

$('.xxx').on('click','.yyy',function(){
   var id = $(this).attr('id'); // <---here $(this) is the clicked elem
});

或者

$('.xxx').on('click','.yyy',function(){
   var id = this.id; // <---here 'this' is the clicked elem
});
于 2013-04-10T07:05:16.043 回答
0

您在点击功能中有拼写错误

$('.xxx').on('click','.yyy',function({
                          ----------^

$('.xxx').on('click','.yyy',function(){ // it should be (){}
   var id = this.id;
});
于 2013-04-10T07:06:08.343 回答
0

你有一个错误document.ready()您在功能和点击事件中错过了括号......

尝试这个;

 $(document).ready(function(){
                      //---^^ ---here

 $('.xxx').on('click','.yyy',function(){
                           //--------^^---here

所以应该是

$(document).ready(function(){
$('.xxx').on('click','.yyy',function(){
   var id = $(this).attr('id');
});
});

休息你的第一个代码应该可以工作......

于 2013-04-10T07:04:37.640 回答
0

尝试这个 ::

$(document).ready(function() {
    $(".xxx").on("click", ".YYY", function(event){
        var id = $(this).attr('id');
    });
});

您使用错误的语法来获取元素的 ID 属性。

于 2013-04-10T07:26:59.673 回答