Javascript 按属性值从节点列表中选择元素
我正在制作一个交互式的楼层地图。它由多个Javascript 按属性值从节点列表中选择元素,javascript,Javascript,我正在制作一个交互式的楼层地图。它由多个rect元素组成,我通过const nodeList=document.queryselectoral(“rect”)获得这些元素。每个元素都有id属性。我还有一本字典,我从ajaxresponse中获得 status = { "id": "status" ... } 我需要创建一个函数,用适当的类更新所有rect元素: function updateStatus(status){ const object = status;
rect
元素组成,我通过const nodeList=document.queryselectoral(“rect”)
获得这些元素。每个元素都有id
属性。我还有一本字典,我从ajax
response中获得
status = {
"id": "status"
...
}
我需要创建一个函数,用适当的类更新所有rect元素:
function updateStatus(status){
const object = status;
for (const [key, value] of Object.entries(object)) {
// here i need to do something like nodeList.element[id=key].classList.add(value)
};
};
正确的方法是什么nodeList.element[id=key].classList.add(value)
更新
我首先得到一个节点列表,其中constnodelist=document.querySelectorAll(“rect”)代码>。然后我通过ajax
将其发送到服务器,它返回一个带有id:status
对的字典。
现在,我还需要根据字典中的状态
使用适当的类更新节点列表中的每个节点。但所有这些都不重要,因为我唯一的问题是如何根据其属性值选择节点。基本上,我需要知道如何执行document.querySelectorAll('rect[id=“key”]”)代码>不是整个文档
,而是在节点列表上
我已经有了。怎么样
var nodes=document.querySelectorAll('rect[id=“key”]”);
[].forEach.call(节点,el=>el.classList.add(value));
节点:id
属性应该具有唯一的值,因此您不需要查询节点列表并对其进行迭代。我不相信您是通过AJAX获得DOM节点的,那么您的节点是否在nodelist
变量中?内部节点列表元素
?它不应该是复数吗?恐怕我不能真正理解这个问题;您能否添加足够的“”(HTML、JavaScript和CSS)代码,以便我们重现您的问题,并解释“适当的类”是什么,以及您希望的最终结果可能是什么?