为多类元素中某一类的元素查找Dom节点索引
Finding Dom Node Index for elements of a certain class of a multi-class element
Hi我有一系列带有多个不同类的标签。单击跨度时,我想返回跨度类的索引。所以不是跨度本身的索引。
这是一个示例html:
<span class='spantype1 party'>text1</span>
<span class='spantype2 party'>text2</span>
<span class='spantype1 party'>text3</span>
所以如果我点击文本3,我想返回1而不是2。如果我点击文本1,我想返回0。当然,如果我点击text2,我想返回0。
这里的这个答案不起作用,因为索引总是返回为-1(因为有多个类),请参阅我的示例jsfiddle:
$( "span" ).click(function() {
var index = $('.' + $(this).attr('class')).index($(this));
alert(index);
});
我会使用一个过滤器来获取你感兴趣的类,并在此基础上进行搜索:
$("span").click(function() {
var spanType = $.grep(this.classList, function (className) {
return /^spantype/.test(className);
})[0];
var index = $('.' + spanType).index($(this));
alert(index);
});
我在上面使用了classList
,但为了获得更好的支持(请参阅caniuse.com),您可能会使用className
:
$("span").click(function() {
var spanType = $.grep(this.className.split(/'s+/), function (className) {
return /^spantype/.test(className);
})[0];
var index = $('.' + spanType).index($(this));
alert(index);
});
相关文章:
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 如何在不传递此信息的情况下查找被调用的元素
- 查找元素高度,包括边距
- 为什么可以't PHP查找可以使用JS或jQuery访问的元素
- 查找数组javascript中包含的元素类型
- 在AngularJs中查找元素并更改其内容
- JavaScript-如何按类查找元素并删除此类
- 在Meteor中如何查找DOM元素(渲染后)
- jquery在元素中查找文本节点,并使用标记进行连接和包装
- 如何按id查找两个类中任一类的子元素
- 从json数组中查找满足条件的特定元素的值
- 如何通过来自不同父元素的相同元素查找 HTML 元素
- 为动态创建的元素查找前一个同级的值
- HTML5 音频元素 - 查找滑块 - 无法在“HTMLMediaElement”上设置“当前时间”属性:提供的双精度值
- 具有用户添加的行的窗体,以及对每行的输入元素查找
- 选择tr及其“所有子元素”;-查找jquery选择器
- 为每个元素查找data()键值对
- 如何根据兄弟元素中排序的元素查找索引
- 为多类元素中某一类的元素查找Dom节点索引
- 如何使用多行元素查找offsetWidth