我正在读取一个返回html字符串的api。我正在使用knockout将html绑定到div的内容。
我想要做的是在绑定之前更改该字符串中的锚元素。
例如,假设我将此作为回复。
"<div>Lorem ipsum <a href='#'>link1</a> more random text</div>"
我想将锚文本更改为其他内容。
这就是我现在正在尝试的
var htmlString = "<div>Lorem ipsum <a href='#'>link1</a> more random text</div>";
var links = $(htmlString).find("a");
$(links[0]).text("hello world");
$("#stringTarget").html(htmlString);
并且它没有进行更新。
注意:示例不使用knockout.js,它只是为了说明编辑字符串的过程,然后将div的html设置为更改后的字符串。
答案 0 :(得分:1)
你可以使用
var htmlString = $("<div>Lorem ipsum <a href='#'>link1</a> more random text</div>");
var links = $(htmlString).find("a").text("hello world");
$("#master").html(htmlString);
您应该使用$()
将其作为对象
答案 1 :(得分:1)
var htmlString = "<div>Lorem ipsum <a href='#'>link1</a> more random text</div>";
var elems = $.parseHTML(htmlString);
$(htmlElements).children('a').text('my new text');
答案 2 :(得分:1)
你在做的是:
在var htmlString
中实例化links
锚点(htmlString
保持不变):
var links = $(htmlString).find("a");
并将文本文本设置为var链接中的第一个锚点(htmlString
仍保持不变):
$(links[0]).text("hello world");
然后,您正在检索未更改的原始htmlString:
$("#stringTarget").html(htmlString);
相反,
如何直接在一行中设置它?
var htmlString = "<div>Lorem ipsum <a href='#'>link1</a> more random text</div>";
$("#stringTarget").html(htmlString).find("a").text("hello world");