2010-03-11 107 views

回答

26
var id = $("div").attr('id').replace(/button/, ''); 
+0

太棒了!那是我完全需要的!非常感謝你朋友pal – yosafat 2016-11-16 09:21:03

11

您的「id」值不能是純數字;他們需要以字母或「_」開頭,如標識符。 (注意:這不是真的在HTML5文檔)。一旦你在喜歡你的「ID」的價值得到了一個號碼,你只使用jQuery的attr()函數來獲取ID:

var theId = parseInt($('div.whatever').attr('id').replace(/[^\d]/g, ''), 10); 
+0

我可以問你一個問題。/[^ \ d]/g是什麼意思? – 2010-03-12 04:22:06

+0

這是一個正則表達式。它與此部分中的任何非數字匹配: 「[^ \ d]」。最後的「g」告訴Javascript重複對它在字符串中找到的所有非數字進行「替換」操作。 – Pointy 2010-03-12 11:18:00

+0

這是最好的答案。我不知道我可以用單詞和數字使用parseInt。它過濾掉所有的文本並返回數字。太酷了,太容易了 – mdegges 2016-01-09 19:31:56

2
// replace all non-digits with nothing 
alert($('div').attr("id").replace(/\D/g,'')); 

如果你喜歡,你可以搶號結尾:

// <div id="_34_foo_555"></div> 
alert($('div').attr("id").match(/\d+$/)); 
// alerts "555" 
1

如果button是恆定的前綴,你可以這樣做:

var number = parseInt(element.id.match(/^button(\d+)$/)[1], 10); 
1

您應該養成在屬性名稱中使用分隔符的習慣(即button-1,button_1)。其中一個優點是,它可以更容易地從字段中提取數字或其他信息(即通過將字符串拆分爲' - ')。

0

這是一個老問題,但我想補充的一個id使用data-屬性,而不是編碼信息的想法:

window.onload = function() { 
 
    var element = document.getElementById('button1'); 
 
    var number = parseInt(element.getAttribute('data-index'), 10); 
 
    console.log(number); 
 
}
<button id="button1" data-index="1"></button>

這樣,你不」不需要經歷所有的匹配和什麼。