我有一些列表。
目前id
为test_3, test_1, test_2
。我需要来自每个(3,1,2)
的{{1}}的号码id
,并将此号码附加到另一个数据属性中。请检查结果部分。它会让你了解我的期望。感谢
HTML
li
脚本
<ul id="cat">
<li id="test_3">Text 3</li>
<li id="test_1">Text 1</li>
<li id="test_2">Text 2</li>
</ul>
预期结果
$('#cat').attr('id').split("-")[2];
答案 0 :(得分:2)
要实现此目的,您可以遍历li
元素,并根据data()
属性中的数字设置id
。试试这个:
$('#cat li').each(function() {
$(this).data('id', this.id.split('_')[1]);
}).click(function() {
console.log($(this).data('id'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="cat">
<li id="test_3">Text 3</li>
<li id="test_1">Text 1</li>
<li id="test_2">Text 2</li>
</ul>
答案 1 :(得分:1)
您可以使用ID ul
循环遍历cat
元素的所有子元素。
在每个循环中,通过获取id属性获取ID,在_
上将其拆分并获取第一个索引。
然后,您可以使用JQuery的属性函数设置属性,您可以了解有关here的更多信息。
$('#cat li').each(function () {
var dataId = $(this).attr('id').split('_')[1];
$(this).attr('data-id', dataId);
});
此实例的一个示例
$('#cat li').each(function () {
var dataId = $(this).attr('id').split('_')[1];
$(this).attr('data-id', dataId);
});
console.log($('#cat').html());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="cat">
<li id="test_3">Text 3</li>
<li id="test_1">Text 1</li>
<li id="test_2">Text 2</li>
</ul>
答案 2 :(得分:0)
这应该是你的一些问题。
使用$(this).attr("id").split('_')
将分割&#34; cat_3&#34;进入&#34; cat&#34;和&#34; 3&#34;然后使用[1]
选择&#34; 3&#34;
$("#cat li").each(function(){
$(this).attr("data-id", $(this).attr("id").split('_')[1]);
})
console.log($("#cat").html())
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="cat">
<li id="test_3">Text 3</li>
<li id="test_1">Text 1</li>
<li id="test_2">Text 2</li>
</ul>
&#13;
答案 3 :(得分:0)
您也可以使用RegExpression。
var suffix = "test_2".match(/\d+/); // results --> 2
基本上它会在字符串值中取出数值。
<强>用法强>
$('#cat li').each(function() {
$(this).data('id', this.id.match(/\d+/));
})