Javascript 如何从querySelectorAll()的每个结果中获取属性
我正在尝试这样做:Javascript 如何从querySelectorAll()的每个结果中获取属性,javascript,Javascript,我正在尝试这样做: 搜索我的结构中的所有跨度 从每个跨度中获取id值 出于测试目的,使用该文本更新父级 这项工作的原因是,我正在为一个应用程序进行前端定制,并尝试通过在父元素上设置的值来标记一些WAI-ARIA 问题是,许多需要的值来自我正在使用的COTS应用程序。在DOM中,这些所需的输入并不总是以良好的顺序设置的 我一直在寻找一个JS解决方案来解决这个问题 <div class="fluid-form-container"> <ul id="accordionGroup"
<div class="fluid-form-container">
<ul id="accordionGroup" class="Accordion" data-allow-multiple="">
<li class="fluid-form-group-container">
<h3 aria-labelledby="accordion1id">
<button aria-expanded="true" class="Accordion-trigger" aria-controls="sect1" id="accordion1id">
<span class="Accordion-title"><div class="fluid-form-title">
<div class="FormSection">
<span id="More_Info_Form_Section_Label">More Info</span>
</div>
</div>
</span>
</button>
</h3>
</li>
<li class="fluid-form-group-container">
<h3 aria-labelledby="accordion2id">
<button aria-expanded="true" class="Accordion-trigger" aria-controls="sect2" id="accordion2id">
<span class="Accordion-title"><div class="fluid-form-title">
<div class="FormSection">
<span id="Even_More_Info_Form_Section_Label">Even More Info</span>
</div>
</div>
</span>
</button>
</h3>
</li>
</div>
//My bad javaScript so far
var found_elements = [];
var outers = document.querySelectorAll('.FormSection');
for(var i=0; i<outers.length; i++) {
var elements_in_outer = outers[i].querySelectorAll("span");
var updateValue = elements_in_outer.getAttr("id");
outers[i].closest("h3").innerHTML = updateValue;
}
-
更多信息
-
更多信息
//到目前为止,我的javaScript很糟糕
var发现_元素=[];
var outers=document.querySelectorAll('.FormSection');
对于(var i=0;i如果您事先知道您将只使用具有id的span元素,那么在queryselectoral选择器中同样使用[id]
document.querySelectorAll('span[id]')
如果将其用作数组,则需要
[... document.querySelectorAll('span[id]')]
分配新值的方式如下:
[... document.querySelectorAll('span[id]')].forEach(s => s.closest("h3").innerHTML = s.id)
如果您事先知道您将只使用具有id的span元素,那么在querySelectorAll选择器中使用[id]
document.querySelectorAll('span[id]')
如果将其用作数组,则需要
[... document.querySelectorAll('span[id]')]
分配新值的方式如下:
[... document.querySelectorAll('span[id]')].forEach(s => s.closest("h3").innerHTML = s.id)
queryselectoral()
返回a,因此外部.getAttr(“id”)中的元素将不起作用,应替换为querySelector()
没有getAttr
,请使用getAttribute
(我将您的for
替换为forEach
)
var found_elements=[];
var outers=document.querySelectorAll('.FormSection').forEach(div=>{
var elements_in_outer=div.querySelector(“span”);
var updateValue=elements_in_outer.getAttribute(“id”);
div.closest(“h3”).innerHTML=updateValue;
});
-
更多信息
-
更多信息
queryselectoral()
返回a,因此外部.getAttr(“id”)中的元素将不起作用,应替换为querySelector()
没有getAttr
,请使用getAttribute
(我将您的for
替换为forEach
)
var found_elements=[];
var outers=document.querySelectorAll('.FormSection').forEach(div=>{
var elements_in_outer=div.querySelector(“span”);
var updateValue=elements_in_outer.getAttribute(“id”);
div.closest(“h3”).innerHTML=updateValue;
});
-
更多信息
-
更多信息
javascript有一个closest()
方法?或者你把jQuery方法和javascript搞混了?有一个最近的方法,它使用一个选择器,就像querySelector一样。这个方法有多新?它已经在DOM规范中,并且受到所有现代浏览器的支持(当然,IE不再是浏览器了)javascript有一个closest()
方法?或者你把jQuery方法和javascript混淆了吗?有一个最近的方法,它使用一个选择器,就像querySelector所做的那样。这个方法有多新?它已经在DOM规范中,并且受到所有现代浏览器的支持(当然,IE不再是浏览器了)