是否可以通过属性's值,并将属性设置为parentNode
Is it possible to get element id by attribute's value and set an attribute to the parentNode
我试图通过href值获取一个元素,并获取该元素的parentNode,最后将parentNode设置为属性。
这里有一个代码解释了我要做的事情:
var uri = "index.html"; //just for the example
var elementA = document.querySelector("." + uri);
var elementLi = elementA.parentNode;
elementLi.setAttribute("class", "current-menu-item");
它所说的问题:未捕获的类型错误:无法读取null 的属性"parentNode"
我几乎没有读到其他和我类似的问题,但都没有解决。据我所知,querySelector
并没有提供您可以对元素执行的所有功能,因为此方法返回一个静态列表。
有可能在这里做我想做的事吗?
如果我的问题不清楚,请评论并让我知道我会努力改进问题
属性节点已弃用,只需使用setAttribute
方法:
elementLi.setAttribute("class", "current-menu-item");
然而,您的实际问题是elementLi
是undefined
,因为elementA
不是元素节点——querySelectorAll
返回需要循环的节点集合!
var uri = "index.html"; //just for the example
var elementsA = document.querySelectorAll("a[href="+JSON.stringify(uri)+"]");
for (var i=0; i<elementsA.length; i++) {
var elementLi = elementsA[i].parentNode;
elementLi.setAttribute("class", "current-menu-item");
}
如果你只使用querySelector
来获得一个元素,它可能仍然是null
,所以最好检查一下:
var uri = "index.html"; //just for the example
var elementA = document.querySelector("a[href="+JSON.stringify(uri)+"]");
if (elementA) {
var elementLi = elementA.parentNode;
elementLi.setAttribute("class", "current-menu-item");
}
相关文章:
- 将属性设置为未定义时未通知观察者
- 是否有任何内置方法可以更改JavaScript对象'的属性设置为某个值
- 附加'沙箱'属性设置为动态创建的iframe以停止重定向
- 如何将按钮的数据属性设置为输入[type=text]中设置的任何值
- 在jquery中,从同一对象的属性设置输入字段和标签的正确方法是什么
- 当可见属性设置为 false 时,使用 JavaScript 删除空格
- 无法使用 Snap.SVG将“填充”属性设置为“继承”
- 使用jQuery为属性设置新值
- 是否可以通过属性's值,并将属性设置为parentNode
- 如何使用按钮的jsp点击事件将属性设置为struts-bean
- 在ember.js记录上使用toJSON,将其中一个属性设置为null
- javascript函数属性设置器中的延迟
- 添加“;选中'属性设置为jquery中的复选框
- jQuery/JavaScript按属性设置数组
- Dojo.将JSon中的属性设置为HTML属性
- 将class属性设置为元素不适用于javascript和jquery
- 将属性设置为对对象的引用
- 如何将显示属性设置为与内联!重要的
- jQuery-根据HTML属性设置CSS维度
- 为什么我不能在 JavaScript 中将对象属性设置为空字符串