Получить номер только из родительского идентификатора

0

Я хочу получить 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.

Каков правильный способ сделать это? играть на скрипке

  • 2
    пожалуйста, укажите ваш HTML
Теги:
parseint
attr

6 ответов

3
Лучший ответ
$('#button').click(function() {

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

    alert(newID);
});

JSFiddle демо.

  • 0
    Спасибо чувак! Я приму тебя задницу, как только смогу :)
  • 0
    Привет, Джеймс, просто из любопытства, что если идентификатор имеет значение типа <div id="782test_4"> и захочет вернуть только цифры 7824 , что такое совпадение с Regex?
4

Есть много ответов, которые используют регулярные выражения, но я не рекомендую его. Вам нужны data-. Вы уже используете jQuery, чтобы получить доступ к своему id с помощью метода .data(). Вот пример;

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
    +1 это лучшая альтернатива имхо
  • 0
    Это выводит «неопределенный», а не 4?
Показать ещё 1 комментарий
1

Используйте простое регулярное выражение

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

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

    alert(newID);
});

Демо: скрипка

  • 0
    Спасибо человек, хороший awnser :)
0

Вы можете использовать регулярное выражение для соответствия числу внутри вашей строки id:

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

Демо-версия скрипта

0

Попробуй это:

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

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

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

    alert(newID);
});

Демо: http://jsfiddle.net/3FZya/6/

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

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

    alert(newID);
});

это будет работать

  • 0
    Это не доносит мой вопрос :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню