我正在从列表标记中读取ID,并将其添加到pre
标记,如下所示:
$('pre').each(function() {
$(this).attr('id', $(this).closest('li').attr('id'));
});
例如,list标签有这个id:
<li id="Comment_123">
对于pre标签,我想删除id中的前8个字符;所以 pre标签应该成为这个id:
<pre id="123">
如何使用我已有的代码实现这一目标?
答案 0 :(得分:3)
如果您知道所有ID具有相同的结构,则可以删除_(包括)之前的内容。
var id = $(this).closest('li').attr('id').split('_').pop();
答案 1 :(得分:2)
如果它设置在前8个字符,则使用substring
var id = $(this).closest('li').attr('id');
var shortened = id.substring(8, id.length);
$(this).attr('id', shortened);
答案 2 :(得分:2)
如果要删除除数字之外的所有内容,可以使用.replace(/\D/g, '')
:
$('pre').each(function () {
this.id = $(this).closest('li').attr('id').replace(/\D/g, '');
});
\D
- 匹配any non-digit character。g
是一个匹配所有匹配项的global flag。换句话说,所有出现的任何非数字字符都替换为空字符串''
。