如何访问使用特定属性而不是 class 属性的 tr 标签?

How to access tr tag that is using certain attribute instead of class attribute?

我目前在 JavaScript 中使用 cheerio,但我不知道如何访问使用特定属性而不是 class 属性的 tr 标签。

例如,

<tr role="work" class="c1">
    <td>task1</td>
    <td>task2</td>
</tr>
<tr role="work" class="c2">
    <td>task1</td>
    <td>task2</td>
</tr>

我尝试了一些我收到的建议,例如...

$("tr[role='work']").each(function(i, el) {
    ...
}

使用 role=work 获取所有 tr 标签,但它没有像我计划的那样工作。

虽然这有点难看(并且没有使用 JQuery),但我用它来检查具有特定角色的元素:

var elements = document.getElementsByTagName("tr");
for(var i=0; i<elements.length; i++) {
    var elem = elements[i];
    if(elem.attributes && elem.attributes.role && elem.attributes.role.value === 'work') {
        ...
    }
}

有两种方法可以做到这一点。

没有jQuery

document.querySelectorAll('tr[role="work"]');

这会给你一个我个人喜欢使用的元素列表。

jQuery

$('tr[role="work"]')

这个 returns 元素不同,因为它们采用 jquery 自己的特殊格式。