使用数据属性切换类

我正在使用Data属性来获取jQuery中的元素,如下所示

Toggle Me       

JQuery是

 $("a.toggleArrow").off().on("click", function () { $("span.arrow").each(function () { var dataTarget = $(this).data("target"); if (dataTarget == "tgrt1") { dataTarget.toggleClass("collapse expand"); } }); }); 

我们可以使用这种方式,但它似乎不起作用?

使用$(this)来引用each元素中的当前元素。 dataTarget是一个字符串,你不能在它dataTarget.toggleClass("collapse expand");调用jQuery方法dataTarget.toggleClass("collapse expand");

 if ($(this).data('target') == 'tgrt1') { $(this).toggleClass("collapse expand"); //^^^^^ } 

无需循环,使用属性值选择器选择具有箭头类和data-target所有元素作为tgrt1

 $("a.toggleArrow").off().on("click", function() { $("span.arrow[data-target='tgrt1']").toggleClass("collapse expand"); }); 

dataTarget变量包含字符串。 你不能在字符串上使用jQuery函数。

 dataTarget.toggleClass("collapse expand"); 

你需要替换

 $(this).toggleClass("collapse expand");