2016-08-26 6 views
-1

Я новичок в JavaScript и PhantomJS. Я пытаюсь сохранить ссылки с веб-страницы, а затем изменить. Проблема в том, что я не могу изменить свой массив после page.evaluate.Phantomjs изменить свойство объекта внутри оценить страницу

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

'игрок [игрок]'? Вы, вероятно, хотели использовать 'links [player]' –

+0

Только что отредактировал сейчас, вчера я написал неправильный –

+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, но похоже, что это то, что вы хотите сделать.

Смежные вопросы