我正在尝试测试HTML属性是否存在,并使用具有属性(" tabindex")属性获取值。但我收到以下错误:
无法获得财产“hasAttribute'未定义或空引用
我正在使用jGrid和jQuery。如果该属性存在,我试图获取该特定td的值。
请参阅以下代码:
<tr class="jqgrow ui-row-ltr ui-widget-content myAltRowClassEven ui-state-highlight" tabindex="0" id="2" role="row" aria-selected="true">
<td aria-describedby="jqGrid11_cname" title=" TESTTHIS" class="zeroBorderRight" style="text-align: left; height: 20px;" role="gridcell">
TESTTHIS
</td>
</tr>
答案 0 :(得分:3)
试试这个:
$("#item").attr("tabindex")
答案 1 :(得分:2)
使用jQuery has attribute selector过滤掉tabindex
属性的元素。
var text = $('td[tabindex]').text();
//--------------^^^^^^^^^^--------------------
答案 2 :(得分:1)
如果您想获取tabindex属性的值,您可以这样做:
$(function () {
$('table tbody tr[tabindex]').each(function (i, e) {
var tabindex = e.getAttribute('tabindex');
console.log('tabindex=' + tabindex + ' Row text: ' + e.textContent);
});
});
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<table>
<tbody>
<tr class="jqgrow ui-row-ltr ui-widget-content myAltRowClassEven ui-state-highlight" id="1" role="row"
aria-selected="true">
<td aria-describedby="jqGrid11_cname" title=" TESTTHIS" class="zeroBorderRight"
style="text-align: left; height: 20px;" role="gridcell"> TESTTHIS
</td>
</tr>
<tr class="jqgrow ui-row-ltr ui-widget-content myAltRowClassEven ui-state-highlight" tabindex="0" id="2" role="row"
aria-selected="true">
<td aria-describedby="jqGrid11_cname" title=" TESTTHIS" class="zeroBorderRight"
style="text-align: left; height: 20px;" role="gridcell"> TESTTHIS
</td>
</tr>
<tr class="jqgrow ui-row-ltr ui-widget-content myAltRowClassEven ui-state-highlight" tabindex="2" id="3" role="row"
aria-selected="true">
<td aria-describedby="jqGrid11_cname" title=" TESTTHIS" class="zeroBorderRight"
style="text-align: left; height: 20px;" role="gridcell"> TESTTHIS
</td>
</tr>
</tbody>
</table>
答案 3 :(得分:0)
没有jquery的解决方案,es6
var hasAttr = [...document.getElementById('#blah').attributes]
.map(a => a.name)
.indexOf(ATTRIBUTE) > -1;