Javascript 类^='instructions'…仅选择以类开头的第一个元素应选择全部
这个代码块有什么问题?它将只选择包含指令的第一个元素,但不会选择所有指令。为什么?我错过了什么Javascript 类^='instructions'…仅选择以类开头的第一个元素应选择全部,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,这个代码块有什么问题?它将只选择包含指令的第一个元素,但不会选择所有指令。为什么?我错过了什么 jQuery(document).ready(function () { jQuery('select').select2(); // get a list of objects that begin with instructions var classList = jQuery('a[class^="instructions"]').attr('class').spl
jQuery(document).ready(function () {
jQuery('select').select2();
// get a list of objects that begin with instructions
var classList = jQuery('a[class^="instructions"]').attr('class').split(/\s+/);
console.log(classList);
jQuery.each(classList, function (index, item) {
jQuery('.'+item+'-'+index).click(
function (event) {
event.preventDefault();
jQuery(this).parent().next().toggle();
}
);
});
});
attr用作getter时只能从一个元素返回值,并且将始终从集合中的第一个元素返回
您需要为所有元素映射自己的数组,例如:
var classList = jQuery('a[class^="instructions"]').map(function(){
return $(this).attr('class');
}).get();
当元素有多个类时,您不能保证类以特定字符串开头。顺便说一句,类列表已经有一个属性-无需自定义拆分。对于这类事情,最好使用数据属性,这样可以控制和依赖顺序。您如何知道元素未被选中?您是否尝试记录jQuery'a[class^=instructions]的结果?或者您说代码没有选择多个元素,因为代码的其余部分不工作?这是charlietfl解释的attr getter a s