如何用HTML对象替换特定文本?
示例:
var text = "some text to replace here.... text text text";
var element = $('<img src="image">').event().something...
function ReplaceWithObject(textSource, textToReplace, objectToReplace);
所以我想得到这个:
"some text to replace < img src...etc >.... text text text"
我想操纵对象元素而不再调用$()
方法。
更新 我解决了。
thanx @kasdega,我在你的脚本中创建了一个新脚本,因为在你的脚本中我无法在替换后修改“元素”。 这是脚本:
$(document).ready(function() {
var text = "some text to replace here.... text text text";
var element = $('<img />');
text = text.split('here');
$('.result').append(text[0],element,text[1]);
$(element).attr('src','http://bit.ly/mtUXZZ');
$(element).width(100);
});
我不知道append方法接受多个元素。 这就是想法,只需要自动化多次替换
thanx to all,此处为jsfiddle
答案 0 :(得分:3)
对要替换的文本执行拆分,然后使用数组索引0和1 ...类似于:
function ReplaceWithObject(textSource, textToReplace, objectToReplace) {
var strings = textSource.split(textToReplace);
if(strings.length >= 2) {
return strings[0] + objectToReplace.outerHTML() + strings[1];
}
return "";
}
更新:我发现了另一个SO帖子Get selected element's outer HTML,它指向了一个微小的jquery插件,可以帮到这里。
我相信这jsfiddle有你想要的。 outerHTML是我在JSFiddle中包含的微小的jquery插件。
你也可以使用replace来减少一些代码:http://jsfiddle.net/kasdega/MxRma/1/
function ReplaceWithObject(textSource, textToReplace, objectToReplace) {
return textSource.replace(textToReplace, objectToReplace.outerHTML());
}
答案 1 :(得分:0)
你可以使用$(selector).outerHtml来获取元素的html字符串
答案 2 :(得分:0)
function textToObj (text,obj,$src){
var className = "placeholder-"+text;
$src.html($src.html().replace(text,"<div class='"+className+"'></div>"));
$("."+className).replace(obj);
}
答案 3 :(得分:0)
您可以直接替换html:http://jsfiddle.net/rkw79/qNFKF/
$(selector).html(function(i,o){ return o.replace('old_html','new_html'); })