目标是通过将滑块链接到某个页面来在页面上创建多个滑块。必须通过单击或悬停滑块锚点来激活滑块。 sliderList
将是一个使这个过程更容易的数组,所以我不必在configs js文件上手动相互链接。
我需要从数组内部的元素中获取属性值。在这种情况下, holder 是我想从当前数组元素中提取属性值的数组。我试过这样做:
var holder = $('[slider-select]');
for (var i = 0; i < holder.length; i++) {
var sliderList = $('[slider-target='
+holder[i].attr('slider-select')
+']');
}
看起来 + holder [i] .attr('slider-select')无效。我正在学习JavaScript / Jquery,即使它完全有意义,也会出现问题,这很疯狂,哈哈。如果我不够清楚,请告诉我。
答案 0 :(得分:1)
Reset
包含一个普通的DOM元素,但您尝试在其上使用jQuery holder[i]
方法。您需要将其转换为jQuery对象attr
(或者在DOM元素上使用本机$(holder[i])
):
getAttribute
var holder = $('[slider-select]');
for (var i = 0; i < holder.length; i++) {
// Splitting this up a bit just to make it more readable:
var val = $(holder[i]).attr('slider-select'); // instead of holder[i].attr(...)
var sliderList = $('[slider-target="' + val + '"]');
// confirm we got the element:
console.log(sliderList.text());
}
答案 1 :(得分:1)
函数attr
是jQuery的内置函数,它是函数getAttribute
和setAttribute
的缩写。
在您的情况下,您希望这样做:
var holder = $('[slider-select]');
for (var i = 0; i < holder.length; i++) {
var test = holder[i];
var sliderList = $('[slider-target=' + holder[i].getAttribute('slider-select') + ']');
} ^
一个好方法是使用jQuery内置函数,所以你可以使用它:
$('[slider-select]').each(function() {
var sliderList = $('[slider-target=' + $(this).attr('slider-select') + ']');
}); ^
答案 2 :(得分:0)
attr方法不是JS元素对象的函数。您需要将其包装在jquery中以检索属性值。例如
$(holder[i]).attr("slider-select")