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)代码,以便我们重现您的问题,并解释“适当的类”是什么,以及您希望的最终结果可能是什么?