使用 cheerio 替换属性值
Replace the attribute value using cheerio
以下代码用于替换所有<img>
标记src
值。但以下代码不会修改原始文档。 $.html
打印原始文档,而不是修改后的文档。
$ = cheerio.load(data);
$("img").each(function() {
var old_src=$(this).attr("src");
var new_src = "/my_cached_image?url=" + encodeURIComponent(old_src);
$(this).prop("src", new_src);
});
modified_data = $.html();
你有一个非常小的错误,IMG 中的"src"是一个属性而不是属性。
所以这段代码将起作用:
var cheerio = require("cheerio");
var data = "<img src='yahoo.com'/>"
$ = cheerio.load(data);
$("img").each(function() {
var old_src=$(this).attr("src");
var new_src = "/my_cached_image?url=" + encodeURIComponent(old_src);
console.log(new_src);
$(this).attr("src", new_src);
});
console.log($.html());
输出为
<img src="/my_cached_image?url=yahoo.com">
使用 .attr('src', new_src)
而不是 .prop()
。
相关文章:
- 替换标记中的属性
- 将css属性替换为变量
- angular2形式-无法读取未定义的属性替换
- 如何将 JavaScript Yahoo Weather API 调用属性替换为变量
- 无法读取未定义的属性“替换” - 替换 JS 生成的 HTML 中的文本
- 用 LESS 伪造一个 css 属性(并在解析时用一个真实属性替换它)
- 使用正则表达式删除所有 html 属性(替换)
- 用对象属性替换数组元素
- 无法读取未定义的属性替换
- 将一个对象的属性替换为另一个对象的属性
- 为什么画布中以前的圆圈的属性被较新的属性替换
- jquery autocomplete 无法读取未定义的属性“替换”
- JS getters:定义属性替换或补充旧的内联“get”“set”语法
- 用户脚本 - 将变量的属性替换为函数
- 使用JavaScript用src属性替换多个图像
- 元素's src属性替换,以便在加载时首先呈现修改后的元素
- jQuery IE9-10:无法获得未定义或空引用的属性替换
- 用数据属性替换不同类名的一部分
- 将src属性替换为javascript– 获得相对路径
- 如何删除所有下拉选项并仅通过给定的NAME属性替换新选项