這裏是我的問題的一些代碼:引用傳遞上的forEach
var jsdom = require('jsdom');
var content = '\
<p>\
<img src="assets/logo">\
<img src="assets/background">\
</p>\
';
jsdom.env(content, function (error, window) {
var $ = require('jquery')(window)
var elements = $.find('img');
elements.forEach(function(imageElement) {
var src = $(imageElement).attr('src') + '.jpg';
$(imageElement).attr('src', src);
// print "assets/logo.jpg" and "assets/background.jpg"
console.log($(imageElement).attr('src'));
});
console.log(content);
});
我想要做的是,改變了src
每img
元素assets/logo.jpg
和assets/background.jpg
內容。
任何人都可以建議我,我必須做什麼才能使content
更改爲:<p><img src="assets/logo.jpg"><img src="assets/background.jpg"></p>
?
將新的'innerHTML'分配給'content'?檢查jsdom文檔以瞭解如何將DOM序列化回html。 – Bergi 2014-12-02 12:44:47
@Bergi:我的意思是,我想從'$(imageElement).attr('src',src)'這行代碼改變'content';但不幸的是它不能直接改變'content'的值。 – Crazenezz 2014-12-02 12:50:59
當然你不知道。 'content'是一個字符串。 DOM不存儲在一個字符串中,你操作的是一個節點樹。您從中創建DOM的字符串將保持不受影響。您需要將其序列化回新的字符串。 – Bergi 2014-12-02 13:07:24