我有一个带有一些文字的div
<div>This is my initial text</div>
我想用我已经创建的输入框替换文本'initial'
类似的东西:
input=$("#myinput");
$("div").find("initial").replaceWith(input);
OR:
input=$("#myinput");
$("div").html().replace('initial',input);
但这些都不起作用
有什么想法吗?
答案 0 :(得分:5)
为什么不用跨度包围它以便更容易找到:
<div>This is my <span id="replace">initial</span> text</div>
然后:
$('#replace').replaceWith(input);
答案 1 :(得分:2)
尝试:
$("div").html($('div').text().replace('initial',input.html()));
如果你的jQuery足够新,我会更喜欢这个:
$("div").html($.parseHTML($('div').text().replace('initial',input.html())));
答案 2 :(得分:0)
var input = $("#myinput");
$("div:contains(initial)").replaceWith(input);
修改强>
只替换“initial”这个词:
var input = $("#myinput");
$("div:contains(initial)").html(function(_,html) {
return html.replace('initial', input.get(0).outerHTML);
});
答案 3 :(得分:-2)
这应该有效:
$("div").html(input)
编辑:实际上,不,它不会,您需要使用某种元素包装“initial”,最好使用“id”或“class”元素,以便您可以选择它直接
编辑#2 :
// Grab the actual HTML of the element you want to inject
var elementHTML = $(input).html();
// Loop over each DIV, though you really should use ID/class attributes
$("div").each(function() {
var divHTML = $(this).html(); // Grab a copy of the DIV's HTML
$(this).html(divHTML.replace('initial', elementHTML)); // Replace "initial" in the saved string with the element's HTML from above
});