我不明白为什么attr()只被调用一次,
我的HTML是
<table id="myTable">
<tbody>
<tr>
<td>...</td>
<td>...</td>
<td>
<abbr title='first'>Demo1</abbr>
</td>
</tr>
<tr>
<td>...</td>
<td>...</td>
<td>
<abbr title='second'>Demo2</abbr>
</td>
</tr>
.
.
.
</tbody>
</table>
现在我想得到所有abbr
的“标题”所以写下面的查询
$(document).ready(function () {
console.log($('#myTable tr td:nth-child(3) abbr').attr("title"));
}
所以,它应该归还给我
first
second
.
.
.
但输出只是"first"
,
但如果写
var oRows = $('#myTable tbody tr');
$.each(oRows, function (i) {
console.log($(this).children('td:nth-child(5)').children().attr("title"));
});
然后我得到正确的输出。但我不认为这是一个正确的方法,所以任何身体都可以告诉我我哪里出错了。
我也读了this答案,但我还不清楚
谢谢
.attr()
返回第一个元素的属性。如果您想要所有匹配元素的属性,请使用map
:
var titles = $('#myTable tr td:eq(3) abbr').map(function() {
return $(this).attr('title'); // or just `return this.title`
}).get();
这是一个非常简单的方法。从表myTable中获取所有abbr元素并给出它们的标题。
$("abbr", $("#myTable")).each(function () {
console.log($(this).attr('title'));
})
这样你就可以得到每个元素:
JS
$(".ele_title").click(function(){
var value = $(this).attr('title');
alert(value);
});
HTML
<abbr class='ele_title' title='first'>Demo1</abbr>
<abbr class='ele_title' title='second'>Demo1</abbr>
<abbr class='ele_title' title='third'>Demo1</abbr>