测试HTML属性是否存在并获取值

时间:2016-08-10 18:01:36

标签: javascript jquery html5 jqgrid

我正在尝试测试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>

4 个答案:

答案 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;