javascript - 仅从 ID 字段中检索数字

标签 javascript jquery

假设我有一个这样的列表:

<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”,我只是为了示例目的而缩短了它们。


感谢所有快速回复。我选择了接受的答案,因为它最接近我已有的答案。

最佳答案

除了解析字符串,您可以使用数据属性吗?

<li id="item_1_dish" data-id="1">Item 1</li>

如果 element 是一个 jQuery 对象,那么访问它:

var id = parseInt($element.data('id'));

或者如果 element 是一个 HTMLElement:

var id = parseInt(element.dataset.id);

关于javascript - 仅从 ID 字段中检索数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26997668/

相关文章:

javascript - Sequelize : Include.,其中通过 'parent' 模型属性进行过滤

javascript - Jade View 中的控制台对象

javascript - (语义 UI + React)根据屏幕尺寸更改 HTML 元素的最佳方法?

javascript - 开始为基于 Django REST API 的系统开发客户端(CORS 错误)?

javascript - 试图在 div 悬停上居中阅读更多链接?

javascript - 获取具有相同数据属性的最后一个 div

javascript - 如何更改 Logo 大小并在向下滚动时隐藏一些 Div

javascript - 压入整个子数组

javascript - 通过 $.inArray 在另一个数组中查找数组值?

javascript - 将变量从客户端 JavaScript 安全地传递到 Nodejs 服务器