在控制台中我有:
$(".myCssClass")[0].parentNode
<li><span class="myCssClass">some text</span></li>
我想为标记span
<li>
的css类
我试过这样:
$(".myCssClass")[0].parentNode.addClass("test")
TypeError: undefined is not a function
我使用Jquery 1.5.2
答案 0 :(得分:24)
addClass
是一个jQuery对象的方法。当你使用$(".myCssClass")[0]
时,你有真正的元素,而不是jQuery包装器。
然后,你可以:
再次将其包装到jQuery对象中:
$($(".myCssClass")[0].parentNode).addClass("test")
仅适用于jQuery对象:
$(".myCssClass").eq(0).parent().addClass("test")
使用纯JavaScript添加类(旧浏览器不支持):
$(".myCssClass")[0].parentNode.classList.add("test")
答案 1 :(得分:1)
使用.parent()
$(".myCssClass").parent().addClass("test")
.addClass()
只能用于jQuery选择器。
替代解决方案 (不建议通过上面提到的解决方案,但为了完成)
$(".myCssClass")[0].parentNode
不是jQuery对象,要转换成需要用$()
包裹的那个
$($(".myCssClass")[0].parentNode)
// jQuery选择器
现在addClass()
,$($(".myCssClass")[0].parentNode).addClass("test")