0

我在获取元素的父 ID 时遇到了麻烦。

$(function(){
$("#elem-132224").append("<button class='sum'>+</button><button>-</button>")
$(".sum").click(function(){
    alert($(this).attr('id'));
})

为什么不工作?

4

3 回答 3

4

它不起作用,因为该按钮没有id. 它只有class. 你可以这样写:

$(function(){
  $("#elem-132224").append("<button id='my-id-123' class='sum'>+</button><button>-</button>");
  $(".sum").click(function(){
    alert($(this).attr('id'));
});

如果要获取父级id(其中的元素<button>),可以parent()在 jquery 中使用:

$(function(){
  $("#elem-132224").append("<button class='sum'>+</button><button>-</button>");
  $(".sum").click(function(){
    alert($(this).parent().attr('id'));
});
于 2012-12-13T11:04:19.310 回答
3

您没有id在按钮 html 中添加属性。

改变

$("#elem-132224").append("<button class='sum'>+</button><button>-</button>")

$("#elem-132224").append("<button class='sum' id='someid'>+</button><button>-</button>")
于 2012-12-13T11:03:47.733 回答
1

您的元素没有 ID,因此(不出所料)您无法显示它。

请注意,无需再次调用 jQuery 来获取 ID(一旦您分配了 ID)。它是传递this给事件处理程序的元素本身的属性:

$('.sum').click(function() {
    alert(this.id);
})

或者如果你想获得父母的身份证 -this.parentNode.id

于 2012-12-13T11:05:45.423 回答