我的元素包含这样的类:
class="modal-view arch business"
如何在类中找到具有模态起始单词的元素并仅返回“查看”单词或模态后的单词?
我已经尝试了这个
jQuery("*[class^='modal-'],*[class^='modal-'] a").live('click',function(){
var type = jQuery(this).attr('class').split('-')[1];
alert( type );
});
它不起作用,它只显示我的视图,如果类是模态视图,但如果有其他类它不起作用。有人能指出我正确的方向吗?
所以我试图找到模态之后的部分 - 而不是其他类。如果该类只有模态字
,那么我使用的分割代码是有效的答案 0 :(得分:1)
使用$('*[class^=modal-]').live(...);
答案 1 :(得分:0)
使用属性begin with selector,然后获取className,在空格上拆分以获取第一个类,假设它始终是示例中的第一个类,然后将第一个类拆分为连字符并弹出最后一个位:< / p>
$(document).on('click', '[class^="modal"]', function() {
var klass = this.className.split(/\s+/g)[0];
alert ( klass.split('-').pop() );
});
答案 2 :(得分:0)
您可以在拆分后添加正则表达式匹配,以获得短划线后的第一个单词。
jQuery("*[class^='modal-'],*[class^='modal-'] a").live('click',function(){
var type = jQuery(this).attr('class').split('-')[1].match(/\w*/);
alert( type );
});
答案 3 :(得分:-1)
我建议(虽然这是未经测试的,我使用的是on()
而不是live()
):
$('body').on('click', '[class^="modal-"]', function(){
var classes = this.className.split(/\s+/);
for (var i = 0, len = classes.length; i < len; i++){
if (classes[i].indexOf('modal-') === 0) {
console.log(classes[i].replace('modal-','');
}
}
});
但是,我不能想到jQuery库可能提供的“简单”方式。
但值得观察的是,您似乎正在以错误的方式解决另一个问题(应用程序的查看状态或modal
对话?),从而导致可能不需要的复杂解决方案
参考文献: