首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery id选择

Jquery id选择
EN

Stack Overflow用户
提问于 2011-03-31 11:42:32
回答 2查看 1.1K关注 0票数 1

jquery有两个问题。请看下面的..。

我们正在使用下表:

代码语言:javascript
复制
<tr id="row-5">
  <td></td>
  <td><a class="delete" href="#">Delete</a></td>
</tr>

我们使用以下代码:

代码语言:javascript
复制
$(function () {
    $('.delete').click(function () {
        var id = $(this).parents("tr").attr("id");
        var info = 'id=' + id;
        $.ajax({
            type: "POST",
            url: "delete.php",
            data: info,
            success: function () {}
        });
        return false;
    });
});

所以我们的问题是..。

  1. 如何获得id(5)的正确值而不是行5?
  2. 应该在jquery代码中使用每个函数吗?如果是,我们怎么做?

多谢你们的支持。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-31 11:45:24

更新

关于您的意见如下:

我询问了每个函数,因为我对100行使用jquery和分页,删除按钮对前10行非常有用,但之后它将url更改为#

这是因为您只是在连接页面加载时已经存在的行。如果您将代码更改为使用delegatelive而不是click,那么它将与后面添加的新代码一起工作:

代码语言:javascript
复制
$(function() {
    // Change is +--- here
    //           V
    $('.delete').live('click', function() {
        var id  = $(this).closest("tr").attr("id");
        id = id.substring(4); // or .split('-')[1] as suggested by other answer
        var info = 'id='+id;
        $.ajax({
            type: "POST",
            url: "delete.php",
            data: info,
            success: function(){
            }
        });
        return false;
    });
});

bind (click只是bind的一个快捷方式)将处理程序连接到已经存在的元素。当您使用分页插件时,其他元素还没有出现,因此它们不会连接起来。delegatelive的工作方式是不同的:它们利用事件合并,并将事件挂在容器元素上(live使用文档的根,delegate使用您告诉它使用的任何内容)。有关详细信息,请参阅链接的文档。如果可以使用根植于容器表中的delegate,则优先于使用live

原始答案

attr给出了正确的值(“第5行”)。如果您只想从中提取"5“,可以使用substring

代码语言:javascript
复制
id = id.substring(4);

我没看到你需要循环的地方。

非主题:您也可以通过使用closest而不是parents来节省浏览器的一些工作。

代码语言:javascript
复制
$(function() {
    $('.delete').click(function() {
        var id  = $(this).closest("tr").attr("id");
        var info = 'id='+id;
        $.ajax({
            type: "POST",
            url: "delete.php",
            data: info,
            success: function(){
            }
        });
        return false;
    });
});
票数 1
EN

Stack Overflow用户

发布于 2011-03-31 11:45:28

1- var id = $(this).closest("tr").attr("id").split("-")[1];

2-不需要,因为您选择的行是与单击锚最近的父行。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5499258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档