只获取id/name的单词部分
Get only word part of an id/name
我有一个div元素与许多后代的元素,所有的id形式为"word1",一个简单的例子:id="moviment1"
或id="type1"
。我只需要获得这些id (moviment
或type
)的书面部分,以便将它们的名称与增量1 (id="moviment2"
或id="type2"
)连接起来。
$clone.find('*').each(function() {
var id = $(this).prop('id');
var num = parseInt( $(this).prop("id").match(/'d+/g), 10 ) +1;
$(this).prop('id', id+num);
});
就是这样,我总是得到像id="moviment12"
这样的id。我已经试过了:
var id = $(this).prop('id').replace(/'d+/g, '');
或
var id = $(this).prop('id').match(/'w+/);
但我总是得到错误像"cannot read property 'replace'/'match' of undefined"
。那么,我做错了什么?还有其他想法吗?非常感谢!
理想情况下,您应该使用模板。遍历和修改已解析的元素会使代码运行缓慢且难以维护。
如果您想将id的数字部分增加1,您可以使用replace
方法回调函数:
$clone.find('[id]').prop('id', function(_, id) {
// Assuming `id` is `test_25_segment`
return id.replace(/('d+)/, function(num) {
// |
// --- is 25
return +num + 1;
// |
// --- parses the matching string into integer
});
});
下面是使用上述代码片段的演示。
最简单的方法就是添加这些值作为data-attr
:
<div id="type1" data-id="1" data-text="type"></div>
所以你可以很容易地把它们分开,只是使用.data('id')
和.data('text')
。
您可以这样选择元素:
var all = [].filter.call(document.querySelectorAll('[id*=type]'), function(el) {
return (/'btype'd+'b/).test(el.id);
});
然后你可以使用replace()
试试这个…
var onlyAlphabets = id.split(/('d)/)[0];
相关文章:
- 当鼠标悬停在文本中的单词上时显示警报
- 匹配一个单词,其中候选人可以跨越顺序组(跨度)
- 如何使用jquery强制一个单词更改大小写等以保留品牌
- 拆分单词jquery
- 如何让程序检查所选单词中是否有按键
- AngularJS单选筛选不适用于Name、Description和Field4复选框值
- 如何在悬停时流畅地更改单词
- EmberJS中支持单字母单词模型
- 未捕获的类型错误:无法读取属性'name'即使它存在,也无法定义
- 字母计数:返回重复字母数最多的第一个单词
- 正在检测导航到<a name=“;最新主题”></a>
- 如何在Javascript中从字符串中提取某些单词
- 如何创建一个“;表单弹出框“;在chrome中右键单击时位于突出显示的单词上方
- 在javascript中查找单词
- 使用jQuery检查提交时添加到句子中的单词
- 如何在PHP中获取特定的字符串单词
- 停止较大单词的重叠
- 骨干's Router.execute(callback,args,name)方法获取未定义的名称
- 如何在没有单词的情况下从命令行运行Node.js程序'节点'
- 只获取id/name的单词部分