如何使用jquery从元素中获取属性的id

How to get the id of the attribute from an element using jquery?

本文关键字:获取 属性 id 元素 何使用 jquery      更新时间:2023-09-26

我写了这个迷你jquery片段,但我想获得li元素的id,这样我就可以将这些数据发布到ajax调用中——这是我的脚本

 $('#list li a').on('click', function(e) {
        var id = ? //need to get li id
        e.preventDefault();
        $.ajax({
        type: "POST",
        url: "unfollow.php",
        data: id,
        success: function(){
            $(this).parent().hide();
        $('.updateNumber').html(function(){
            return parseInt($(this).text(),10)+1;
          });
        }
         });
       });
    });

这是一个示例html列表:

<ul id="list">
    <li id="list_1" class="list"><a href="">hide</a></li>
</ul>

谢谢:)

您可以使用纯javascript(不需要额外调用jQuery)

var id = this.parentNode.id 

小提琴在这里http://jsfiddle.net/rL29r/

编辑-只获取数字

var id = this.parentNode.id.replace('list_', '')

http://jsfiddle.net/rL29r/2/

 $('#list li a').on('click', function(e) {
    var id = $(this).parent("li").attr("id");
    e.preventDefault();
    $.ajax({
    type: "POST",
    url: "unfollow.php",
    data: id,
    success: function(){
        $(this).parent().hide();
    $('.updateNumber').html(function(){
        return parseInt($(this).text(),10)+1;
      });
    }
     });
   });
});
  • 参见http://api.jquery.com/attr/
  • 参见http://api.jquery.com/parent/

由于您匹配的<a>元素是<li>元素的后代,并且您似乎想要祖先<li>元素的id,因此可以使用closest()方法:

var id = $(this).closest("li").attr("id");
id = this.parentNode.id;

这至少比jQuery快8倍。不要将jQuery用于如此简单的事情。

对于list_n的数量,请使用

var id = this.parentNode.id;
var number = id.substring(5);

在jsFiddle.net上查看此演示。您需要将.parent()$(this)一起使用。

HTML

<ul id="list">
  <li id="list_1">
    <a href="#">Test Anchor One</a>
  </li>
  <li id="list_2">
    <a  href="#">Test Anchor Two</a>
  </li>
</ul>​

JavaScript

$('#list li a').on('click', function(e) {
    var id = $(this).parent().attr("id").replace("list_", "");
   alert(id);
});​

这将给出12作为id。希望这对你有帮助。