[英]javascript: how do i get the value of a specific attribute in a nested div
为了简化我想要实现的目标,我想使用 javascript bookmarklet 警报从 data-code="popular-laptop-deals" 获取流行笔记本电脑交易。
<div class="display-table-column scroll-item display-block-xs top-padding-mini-xs tile-highlight category-tile" data-code="popular-laptop-deals" data-testid="tile-highlight">
这些属于嵌套的 div,其中还有其他带有 data-code="" 的<div>
。 我试图让函数运行所有并从 data-code="" 获取所有其他值。
我尝试使用以下脚本,但它返回“未定义”:
javascript:alert(document.getElementsByName("data-code")[0]);
感谢有人可以向我展示或指导我如何实现这一目标。
提前致谢。
带有querySelector
选择标记和带有getAttribute
选择属性
var attr_code = document.querySelector('div').getAttribute('data-code'); alert(attr_code);
<div class="display-table-column scroll-item display-block-xs top-padding-mini-xs tile-highlight category-tile" data-code="popular-laptop-deals" data-testid="tile-highlight">
document.getElementsByName("data-code")
是一个空的 NodeList 因为没有name
s 的元素,因此没有具有属性data-code
元素。
您可以将getElementsByName
更改为getElementsByTagName
等,然后获取其属性值。
此外,可以通过元素的dataset
属性访问data-*
属性,例如yourDiv.dataset.code
。
alert(document.getElementsByTagName('div')[0].dataset.code);
<div class="display-table-column scroll-item display-block-xs top-padding-mini-xs tile-highlight category-tile" data-code="popular-laptop-deals" data-testid="tile-highlight">
有了这个,您可以检查页面上的所有 div 标签,如果包含数据代码,则将它们添加到数组中。
var divs = document.getElementsByTagName("div");
var result = [];
for (var i = 0; i < divs.length; i++) {
if (typeof divs[i].dataset.code !== "undefined") {
result.push(divs[i].dataset.code);
}
}
console.log(result)
使用 Jquery,您可以实现如下所示。
查询:
alert($("div").attr("data-code"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="display-table-column scroll-item display-block-xs top-padding-mini-xs tile-highlight category-tile" data-code="popular-laptop-deals" data-testid="tile-highlight">
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.