【问题标题】:Only get the number from parent id仅从父 id 获取数字
【发布时间】:2014-02-20 08:44:00
【问题描述】:

我想从按钮的父元素中获取id,并剪切文本。我的猜测是这样的:

HTML

<div id="test_4">
    <button id="button">Get ID</button>
</div>

JavaScript

$('#button').click(function() {
    parentID = $(this).parent().attr('id');
    newID = parseInt(parentID);

    alert(newID);
});

但这会输出NaN

这样做的正确方法是什么? fiddle

【问题讨论】:

  • 请提供您的html

标签: javascript jquery attr parseint


【解决方案1】:

有很多使用正则表达式的答案,但我不recommendit。你需要的是data- 属性。您已经使用 jQuery,因此您可以使用 .data() 方法访问您的 id。这是一个例子;

HTML

<div id="test_4" data-id="4">
<!--            ^^^^^^^^^^^^ this has to be added to use .data() -->
    <button id="button">Get ID</button>
</div>

JavaScript

$('#button').click(function() {
    var newID = $(this).parent().data('id');
    alert(newID);
});

【讨论】:

  • 这输出'undefined'而不是4?
  • 这是fiddle。你用什么浏览器?顺便说一句,您必须将data-id 添加到您的标记中,以防您错过它。
【解决方案2】:
$('#button').click(function() {

    parentID = $(this).parent().attr('id');
    newID = +(parentID.match(/\d+/));

    alert(newID);
});

JSFiddle demo.

【讨论】:

  • 嗨,James,出于好奇,如果 id 的值类似于 &lt;div id="782test_4"&gt; 并且只想返回数字 7824,那么正则表达式匹配是什么?
【解决方案3】:

使用简单的正则表达式

$('#button').click(function () {

    var parentID = $(this).parent().attr('id');
    var newID = parentID.match(/\d+$/)[0];

    alert(newID);
});

演示:Fiddle

【讨论】:

    【解决方案4】:

    您可以使用正则表达式匹配id 字符串中的数字:

    parentID = $(this).parent().attr('id').match(/\d+/);
    

    Fiddle Demo

    【讨论】:

      【解决方案5】:

      试试这个:

      $('#button').click(function() {
      
          parentID = $(this).parent().attr('id');
      
          newID = parseInt(parentID.split("_")[1]);
      
          alert(newID);
      });
      

      演示:http://jsfiddle.net/3FZya/6/

      【讨论】:

        【解决方案6】:
        $('#button').click(function() {
        
            parentID = $(this).parent().attr("id");
            newID = parentID;
        
            alert(newID);
        });
        

        这会起作用

        【讨论】:

        • 这不是我的问题:)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-04
        • 1970-01-01
        • 2012-11-10
        • 2017-05-23
        • 1970-01-01
        相关资源
        最近更新 更多