通过类将属性添加到元素之前作为标识符



我想在这个拥有.actionSort.的特定对象中添加一个aria隐藏属性

<table class="dataTable" id="resulttable" name="resulttable">
<thead>
<tr>
<th name="bookID" class="sortable"> Book ID</th>
<th name="bookName" class="sortable"> <a class="actionSort"> Book Name</a></th>
<th name="category" class="sortable"> Category</th>
<th name="price" class="sortable"> Price</th>
</tr>
</thead>
<tbody id="resulttable_body">
<tr>
<td>1</td>
<td>Computer Architecture</td>
<td>Computers</td>
<td>125.60</td>
</tr>
<tr>
<td>2</td>
<td>Asp.Net 4 Blue Book</td>
<td>Programming</td>
<td>56.00</td>
</tr>
<tr>
<td>3</td>
<td>Popular Science</td>
<td>Science</td>
<td>210.40</td>
</tr>
</tbody>
</table>

我尝试过这个脚本,但它总是添加隐藏在所有中的咏叹调

var y = $('.dataTable').find('th').length;
for (var i = 0; i < y; i++) { 
if ($( ".dataTable th a" ).hasClass( "actionSort" ) === true) {
 $( ".dataTable th").attr( "aria-hidden", "true" );
}
}

您可以使用this来引用元素。我还简化了你的循环。

$('.dataTable th a.actionSort').each(function(){
$(this).parent().attr( "aria-hidden", "true" );
});

由于使用jQuery,您可以执行类似的操作

$('.dataTable').find('th a.actionSort')
.closest('th')
.attr( "aria-hidden", "true" );

或者你可以使用有

$('.dataTable').find('th:has(a.actionSort)')
.attr( "aria-hidden", "true" );

进行循环

var ths = $('.dataTable').find('th');
ths.each(function() {
var th = $(this);
var isActive = th.find("a").hasClass('actionSort');
if (isActive) {
th.attr( "aria-hidden", "true" );
}
});

最新更新