Javascript 如何使用jquery从每个id获取编号并附加到另一个数据属性?

Javascript 如何使用jquery从每个id获取编号并附加到另一个数据属性?,javascript,jquery,Javascript,Jquery,我有一些清单 当前id为测试3、测试1、测试2。我需要每个li的id中的数字3,1,2,并将这个数字附加到另一个数据属性中。请检查结果部分。它会让你知道我在期待什么。谢谢 Html 预期结果 要实现这一点,可以循环li元素,并根据id属性中的数字设置数据。试试这个: $“cat li”。每个函数{ $this.data'id',this.id.split'[1]; }.点击功能{ console.log$this.data'id'; }; 文本3 文本1 文本2 您可以使用id cat循环通过

我有一些清单

当前id为测试3、测试1、测试2。我需要每个li的id中的数字3,1,2,并将这个数字附加到另一个数据属性中。请检查结果部分。它会让你知道我在期待什么。谢谢

Html

预期结果


要实现这一点,可以循环li元素,并根据id属性中的数字设置数据。试试这个:

$“cat li”。每个函数{ $this.data'id',this.id.split'[1]; }.点击功能{ console.log$this.data'id'; }; 文本3 文本1 文本2
您可以使用id cat循环通过ul元素的所有子元素

在每个循环中,通过获取ID属性、在u上拆分它并获取第一个索引来获取ID

然后,您可以使用JQuery的attribute函数设置属性,您可以进一步了解该函数

这是一个实际的例子

$“cat li”。每个函数{ var dataId=$this.attr'id'.split'[1]; $this.attr'data-id',dataId; }; log$'cat'.html; 文本3 文本1 文本2
这应该是你的一些问题

使用$this.attrid.split将cat_3拆分为cat和3,然后使用[1]after将选择3

$cat li.eachfunction{ $this.attrida-id,$this.attrid.split'[1]; } console.log$cat.html 文本3 文本1 文本2
也可以使用正则表达式

var suffix = "test_2".match(/\d+/); // results --> 2
基本上,它提取字符串值中的数值

用法

$('#cat').attr('id').split("-")[2];
<ul id="cat">
        <li id="test_3" data-id="3">Text 3</li>
        <li id="test_1" data-id="1">Text 1</li>
        <li id="test_2" data-id="2">Text 2</li>
</ul>
$('#cat li').each(function () {
    var dataId = $(this).attr('id').split('_')[1];
    $(this).attr('data-id', dataId);
});
var suffix = "test_2".match(/\d+/); // results --> 2
$('#cat li').each(function() {
  $(this).data('id', this.id.match(/\d+/));
})