javascript - 如何访问这个html元素的属性?

标签 javascript jquery

我正在尝试访问已单击的 html 元素的属性 (aria-controls)。

这是我的代码:

$(".nav-host-tab").click(function(e){
    alert($(this).html());
    // Try to access the aria-controls attribute of the clicked element
});

这是 .nav-host-tab 元素的 html 上下文:

<li id="nav-host-status-tab" role="presentation" class="nav-host-tab active">
    <a href="#host-status" aria-controls="host-status" role="tab" data-toggle="tab">
        <i class="fa fa-tachometer"></i> Status
    </a>
</li>

声明:

alert($(this).html());

返回这个 html 字符串,我可以在其中清楚地看到我正在寻找的属性:

<a href="#host-status" aria-controls="host-status" role="tab" data-toggle="tab">
        <i class="fa fa-tachometer"></i> Status
</a>

所以我尝试使用以下方式访问 aria-controls 属性:

alert($(this).data('aria-controls'));

但它返回:

undefined

再次尝试:

alert($(this).attr('aria-controls'));

它还返回:

undefined

如何访问属性 aria-controls

最佳答案

您尚未向我们提供您的 HTML 结构,但如果您在 $(this).html() 返回的 HTML 中看到它,但是$(this).attr("aria-controls")不返回它,它必须位于后代元素上,您可以使用 find 找到它(然后在元素上使用attr):

var control = $(this).find("a[href='#host-status'][aria-controls]").attr("aria-controls");

该选择器的某些部分可能是可选的,具体取决于 .nav-host-tab 中的完整 HTML 结构。 .

现在您已经向我们展示了结构,它是一个子元素,而且实际上是唯一子元素,因此:

var controls = $(this).children().attr("aria-controls");

或者如果您想更具体:

var controls = $(this).children("a").attr("aria-controls");

var controls = $(this).children("[aria-controls]").attr("aria-controls");

等等

关于javascript - 如何访问这个html元素的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39766797/

相关文章:

javascript - x mod 289 的按位等价

javascript - 带有 jsonp 的 jQuery .ajax() 不调用成功回调函数

javascript - 有人可以解释一下我对这个 Javascript 的范围问题吗?

javascript - 侧边栏将幻灯片切换到右侧

javascript - jQuery 在多个表中搜索文本,如果找到文本则单击按钮

javascript - 使用 javascript 验证包含缩短版本的 YouTube 网址

javascript - 如何使用 jQuery URI 更新具有完整目录路径的链接?

javascript - 使用 javascript 返回值和相应的文本

javascript - 为什么我不应该在 Javascript 循环中创建函数?

javascript - 刷新 View 以应用新选择的主题