只从父ID中获取数字

时间:2014-02-20 08:44:01

标签: javascript jquery attr parseint

我想从按钮的父元素中获取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

6 个答案:

答案 0 :(得分:4)

有许多答案使用正则表达式,但我没有recommend it。您需要的是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);
});

答案 1 :(得分:3)

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

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

    alert(newID);
});

JSFiddle demo

答案 2 :(得分:1)

使用简单的正则表达式

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

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

    alert(newID);
});

演示:Fiddle

答案 3 :(得分:0)

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

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

<强> Fiddle Demo

答案 4 :(得分:0)

试试这个:

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

    parentID = $(this).parent().attr('id');

    newID = parseInt(parentID.split("_")[1]);

    alert(newID);
});

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

答案 5 :(得分:-2)

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

    parentID = $(this).parent().attr("id");
    newID = parentID;

    alert(newID);
});

这将起作用