Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery tr id选择_Jquery - Fatal编程技术网

Jquery tr id选择

Jquery tr id选择,jquery,Jquery,jquery有两个问题。请看一下下面的 我们使用下表: <tr id="row-5"> <td></td> <td><a class="delete" href="#">Delete</a></td> </tr> 所以我们的问题是 如何获得id(5)而不是第5行的正确值 我们应该在jquery代码上使用每个函数吗?如果是,我们怎么做 感谢您的支持。更新: 下面是您的评论: 我询问了每个函数,

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

我们使用下表:

<tr id="row-5">
  <td></td>
  <td><a class="delete" href="#">Delete</a></td>
</tr>
所以我们的问题是

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

  • 感谢您的支持。

    更新:

    下面是您的评论:

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

    这是因为在加载页面时,您只连接已经存在的行。如果您将代码更改为“使用”或单击“”而不是“
    ”,则它将与以下内容后添加的新代码一起工作:

    $(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
    的快捷方式)将处理程序连接到已经存在的元素。当您使用分页插件时,其他元素还不存在,因此它们不会连接起来
    delegate
    live
    的工作方式不同:它们利用事件冒泡并将事件挂接到容器元素上(
    live
    使用文档的根,
    delegate
    使用您告诉它使用的任何内容)。有关详细信息,请参见链接的文档。如果可以在容器表中使用根目录下的
    delegate
    ,请优先使用
    live


    原始答案

    attr
    为您提供了正确的值(“第5行”)。如果只想从中提取“5”,可以使用
    子字符串

    id = id.substring(4);
    
    我看不到任何你需要循环的地方


    主题外:您也可以通过使用而不是
    父项
    来为浏览器节省一些工作

    $(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;
        });
    });
    

    更新

    下面是您的评论:

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

    这是因为在加载页面时,您只连接已经存在的行。如果您将代码更改为“使用”或单击“
    ”而不是“
    ”,则它将与以下内容后添加的新代码一起工作:

    $(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
    的快捷方式)将处理程序连接到已经存在的元素。当您使用分页插件时,其他元素还不存在,因此它们不会连接起来
    delegate
    live
    的工作方式不同:它们利用事件冒泡并将事件挂接到容器元素上(
    live
    使用文档的根,
    delegate
    使用您告诉它使用的任何内容)。有关详细信息,请参见链接的文档。如果可以在容器表中使用根目录下的
    delegate
    ,请优先使用
    live


    原始答案

    attr
    为您提供了正确的值(“第5行”)。如果只想从中提取“5”,可以使用
    子字符串

    id = id.substring(4);
    
    我看不到任何你需要循环的地方


    主题外:您也可以通过使用而不是
    父项
    来为浏览器节省一些工作

    $(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-
    var id=$(this).tr.attr(“id”).split(“-”[1]

    2-无需,因为您选择的行是距离单击的定位点最近的父行。

    1-
    var id=$(this.nexist(“tr”).attr(“id”).split(“-”[1]


    2-无需,因为您选择的行是距离单击的定位点最近的父行。

    几乎正确,您必须使用
    id.substr(3)
    因为索引从0开始,子字符串函数在js中称为substr。@ntziolis:JavaScript既有
    substring
    又有
    substr
    substring
    是from/to,
    substr
    是from/length)。在这两种情况下,“from”都从零开始,因此我们希望
    4
    ,而不是
    3
    ,在这种情况下(因为我们希望从第五个字符开始,而不是第四个字符):@T.J.Crowder thx作为子字符串提示,是的,你是对的,4是正确的索引,伙计,我的计数曾经更好过一次;)@T.J.Crowder感谢您的回答,我询问了每个函数,因为我正在使用jquery sortable和分页功能处理100行,删除按钮在前10行非常有效,但之后它将url更改为#。@seoppc:啊,这是一个完全不同的问题。我会发布更新。编辑:已更新。几乎正确,您必须使用
    id.substr(3)
    因为索引从0开始,子字符串函数在js中称为substr。@ntziolis:JavaScript既有
    substring
    又有
    substr
    substring
    是from/to,
    substr
    是from/length)。在这两种情况下,“from”都从零开始,因此我们希望
    4
    ,而不是
    3
    ,在这种情况下(因为我们希望从第五个字符开始,而不是第四个字符):@T.J.Crowder thx作为子字符串提示,是的,你是对的,4是正确的索引,伙计,我的计数曾经更好过一次;)@T.J.Crowder感谢您的回答,我询问了每个函数,因为我正在使用jquery sortable和分页功能处理100行,删除按钮在前10行非常有效,但之后它将url更改为#。@seoppc:啊,这是一个完全不同的问题。我会发布更新。编辑:已更新。或仅使用
    $(this).closest(“tr”).attr(“id”).substr(4)
    我喜欢
    拆分
    方法,因为它对前缀更改很有弹性-这不是使用它的致命原因,但这只是我的偏好。谢谢你的回答,我询问了每个函数,因为我对100行使用jquery sortable和分页,而对前10行使用delete按钮效果很好,但在这之后,它会将url更改为#。或者只使用
    $(this.nexist(“tr”).attr(“id”).substr(4)
    我喜欢
    拆分
    方法,因为它对前缀更改很有弹性——这并不是使用它的致命原因,但它是绝对的