我是JavaScript和PhantomJS的新手。我试图从网页存储链接然后进行修改。问题是我无法在page.evaluate
之后修改我的数组。
var player = 0;
var links = page.evaluate(function() {
var a = document.querySelectorAll(".link[rel='nofollow']:not(#bg)");
for(var i =0; i < a.length; i++) {
array.push({
"html":a[i].innerHTML,
"link":a[i].href
}
);
}
return array;
});
//Not setting 1 as a value
links[player]["link"] = 1;
我认为它正在发生,因为我已经在执行该函数时设置了玩家值,但是我可以修改这个值吗?
答案 0 :(得分:0)
您当前的代码会替换您要更改的实际数据的引用副本的副本。当然,这是行不通的。
如果您想更改页面上的属性/内容,则需要访问该页面并进行更改:
var player = 0;
page.evaluate(function(player) {
var a = document.querySelectorAll(".link[rel='nofollow']:not(#bg)");
a[player].href = "1";
}, player);
我不认为“1”是href值的合适值,但看起来这就是你想要做的。