繁体   English   中英

从数组中获取元素属性

[英]Get element attribute from array

目标是通过将滑块链接到某物来在页面上创建多个滑块。 必须通过单击或悬停滑块锚点来激活滑块。 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,即使一切都说得通,事情还是会出错,哈哈。 如果我不够清楚,请告诉我。

holder[i]包含一个普通的 DOM 元素,但您尝试在其上使用 jQuery attr方法。 您需要将其转换为 jQuery 对象$(holder[i]) (或者在 DOM 元素上使用本机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()); }
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div slider-select="A">A</div> <div slider-select="B">B</div> <div slider-select="C">C</div> <div slider-target="A">a</div> <div slider-target="B">b</div> <div slider-target="C">c</div>

函数attr是 jQuery 的内置函数,它是函数getAttributesetAttribute的简写。

在你的情况下,你想这样做:

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') + ']');                  
});                                                ^ 

资源

attr 方法不是 JS 元素对象上的函数。 您需要将它包装在 jquery 中以检索属性值。 例如

$(holder[i]).attr("slider-select")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM