我正在尝试制作一个js变量,然后在该变量之外运行一个jquery方法。
for (var i = 0; i < $(".header").length; i++) {
let header = $(".header").get( i );
header.text("cool");
}
但是当我在变量上运行该方法时,我得到一个错误。
Uncaught TypeError: header.text is not a function
我尝试将这两条线合并在一起,但这就是我能想到的。 js文件肯定已连接到页面。 头文件类来自我的html文件,我尝试了一些console.log(),它肯定是在选择元素。
我期望这段代码用html中的.header类更改两个元素,使之说很酷,但除了控制台中显示的错误消息外,什么都没有改变。
答案 0 :(得分:1)
正如您在documentation for jQuery .get()
方法中看到的那样,.get()
方法授予对每个jQuery对象基础的DOM节点的访问权限。而且DOM节点没有任何text()
方法。
因此,您只需要再次将header
包裹在$()
中以使其成为jQuery对象:-
for (var i = 0; i < $(".header").length; i++) {
let header = $(".header").get(i);
$(header).text("cool");
}
尽管有一种简单的方法可以执行您想要的操作:-
$(".header").text('cool');
答案 1 :(得分:0)
.get(i)
返回jQuery集合中第i个元素的基础DOM元素。要获取jQuery对象,请使用.eq(i)
。
因此应该是:
let header = $(".header").eq(i);
或
header.innerText = "cool";