假设我有一个这样的列表:
<ul id="items">
<li id="item_1_dish">Item 1</li>
<li id="item_2_dish">Item 2</li>
<li id="item_3_dish">Item 3</li>
</ul>
我只需要从ID中检索号码。到目前为止,我一直在使用以下内容:
function getNum(element, attrPrefix){
//set prefix, get number
var prefix = attrPrefix;
var num = element.attr("id").substring((prefix.length));
return num;
}
function updateDish(field) {
var num = getNum($(field), "item_");
//Rest of function ...
console.log("Number = " + num);// 1_dish, 2_dish, 3_dish
}
此返回的1_dish,2_dish,3_dish等如何
我想用这个:
function getNum() {
var num = /\d+(?=\D*$)/.exec($("element").attr('id'));
return num;
}
function updateDish(field) {
var num = getNum($(field), "item_");
//Rest of function ...
console.log("Number = " + num); //null
}
阅读这篇文章后将返回我需要的东西:Jquery: Getting the number from ID,不幸的是我得到的是“null”而不是所需的数字。
我的ID实际上看起来像“_bc_inventorybundle_menu_product_0_dish”,我只是出于示例目的将它们缩短了。
感谢所有的快速回复。我接受了公认的答案,因为它与我已经拥有的答案最接近。
最佳答案
删除前缀后,您可以解析字符串以仅获取数字:
var num = parseInt(element.attr("id").substring((prefix.length)));
JSFIDDLE:http://jsfiddle.net/ghorg12110/vacxgomh/1/