我正在尝试使用jQuery从<source>
元素中获取属性值。 <source ix-path="example.com/something.jpg">
$("[ix-path*='something']").each(function (index, element) {
let path = $(element).attr('ix-path');
console.log('path: ', path);
});
我的代码在ix-path
元素中还具有属性<img>
,此代码可以很好地获取它们。
我认为attr()
仅获得第一个匹配元素的值。但是,这不应该成为问题,因为我将其放在each()
函数中,它将从多个ix-path
元素中获取<img>
的值。是因为<source>
是一个空元素吗?
答案 0 :(得分:1)
使用$(this)
代替$(element)
$("[ix-path*='x']").each(function(index, element) {
let path = $(this).attr('ix-path');
console.log('path: ', path);
});
<audio controls>
<source src='file.mp3' type='audio/mpeg' ix-path='x0'>
</audio>
<audio controls>
<source src='file.mp3' type='audio/mpeg' ix-path='x1'>
</audio>
<audio controls>
<source src='file.mp3' type='audio/mpeg' ix-path='x2'>
</audio>
<audio controls>
<source src='file.mp3' type='audio/mpeg' ix-path='x3'>
</audio>
<audio controls>
<source src='file.mp3' type='audio/mpeg' ix-path='x4'>
</audio>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>