获取具有多个类的元素的特定类名
getting a specific class name of an element with multiple classes
假设我在我的html:
<div id="myDiv" class="a b-32"/>
我试图获得'b'类的索引(在我的例子'32')
我知道的唯一方法是:
var index;
var myDiv = $("#myDiv").attr("class");
var classes = myDiv.split(' ');
for(var i=0; i<classes.size(); i++){
if(classes[i].matches((b-)+['d]*) ){
index = classes[i].replace("b-","");
}
}
alert(index);
是否有任何解决方案,不意味着迭代所有的类手动?因为我的解决方案看起来很无趣。肯定有更好的办法,只是我找不到。
你知道,尽管人们都说jQuery让你写的代码更少,但Vanilla JS出奇地擅长一行程序:p
alert((document.getElementById('myDiv').className
.match(/(?:^| )b-('d+)/) || [0,0])[1]);
(为提高可读性增加了空白)
在myDiv
没有b-number
类的情况下返回0
。
编辑:作为@A。沃尔夫在对你的问题的评论中指出,你不妨考虑一下:
<div id="myDiv" class="a" data-b="32"></div>
则可以得到:
alert(document.getElementById('myDiv').getAttribute("data-b"));
正则表达式可以提供帮助:
var index;
var myDivClasses = $("#myDiv").attr("class");
var cls = myDivClasses.match(/(?:^| )b-('d+)(?:$| )/);
if (cls) {
index = cls[1];
}
(使用parseInt
如果你想要一个数字。)
查找b-###
,其中###
是一个或多个数字,两侧有空格或边界(字符串的开始,字符串的结束),并提取数字
相关文章:
- React - 从 DOM 元素获取组件以进行调试
- 如何使用 JQuery 从相对元素获取 html 文本
- 从同一域上的 iframe 中的元素获取值
- 使用本机 Javascript 从 DOM 元素获取选择器字符串
- 使用jquery从另一个元素获取使用id的输入的id
- 如何从角度元素获取编译的节点值
- 如何为不同的元素获取不同的父类
- 从 jQuery 中的子元素获取父 tr 元素
- 当浮点部分为空时,从 JQuery 中的输入元素获取数字值不起作用
- 从 XML 元素获取文本
- 从音频元素获取音频样本
- 从所选元素 html 上方的元素获取属性值
- 使用 jQuery.data 从 dom 元素获取布尔值
- 如何通过jquery从某个元素获取部分文本
- 从输入元素获取表单和表单数据对象
- 从动态元素获取挖空视图的大小
- 从中继器循环中显示的子自定义元素获取正确的上下文.奥蕾莉亚
- 如何使用 JavaScript 或 JQuery 从输入类型=文件 html 元素获取文件名
- 从父元素获取 ID 并将它们放在数组中
- 尝试从选项元素获取 HTML