javascript:如何获取嵌套 div 中特定属性的值
javascript: how do i get the value of a specific attribute in a nested div
为了简化我想要实现的目标,我想使用 javascript 小书签从 data-code="popular-laptop-deals" 中获取 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,其中还有其他 <div>
数据代码 =“”。我正在尝试通过所有函数获取 运行 并从 data-code="".
获取所有其他值
我试过使用以下脚本,但它 returns "undefined":
javascript:alert(document.getElementsByName("data-code")[0]);
如果有人可以向我展示或指导我如何实现这一点,我将不胜感激。
提前致谢。
使用Jquery,你可以实现如下。
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">
document.getElementsByName("data-code")
是一个空的 NodeList,因为没有带有 name
的元素,因此,没有带有属性 data-code
.
的元素
可以把getElementsByName
改成getElementsByTagName
等,然后得到它的属性值
此外,data-*
属性可以通过元素的 dataset
属性 访问,例如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">
带有 querySelector
select 标签和 getAttribute
select 属性
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">
有了这个,您可以检查页面上的所有 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)
为了简化我想要实现的目标,我想使用 javascript 小书签从 data-code="popular-laptop-deals" 中获取 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,其中还有其他 <div>
数据代码 =“”。我正在尝试通过所有函数获取 运行 并从 data-code="".
我试过使用以下脚本,但它 returns "undefined":
javascript:alert(document.getElementsByName("data-code")[0]);
如果有人可以向我展示或指导我如何实现这一点,我将不胜感激。
提前致谢。
使用Jquery,你可以实现如下。
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">
document.getElementsByName("data-code")
是一个空的 NodeList,因为没有带有 name
的元素,因此,没有带有属性 data-code
.
可以把getElementsByName
改成getElementsByTagName
等,然后得到它的属性值
此外,data-*
属性可以通过元素的 dataset
属性 访问,例如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">
带有 querySelector
select 标签和 getAttribute
select 属性
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">
有了这个,您可以检查页面上的所有 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)