Jquery 在变量中替换为

Jquery 在变量中替换为,jquery,Jquery,我有一个允许用户输入文本的输入字段,包括和'; //渲染 $(“#输入”)。单击(函数(){ var输入=$(this.val(); //html呈现 $('#outputplane').html(输入); //素色 $('#outputreplaced').html(输入); $(“#outputreplaced a”).replaceWith(function(){return$(this.contents();}); }); 上面的示例很有效,但我真正想做的是保持outputplain和

我有一个允许用户输入文本的输入字段,包括
和';
//渲染
$(“#输入”)。单击(函数(){
var输入=$(this.val();
//html呈现
$('#outputplane').html(输入);
//素色
$('#outputreplaced').html(输入);
$(“#outputreplaced a”).replaceWith(function(){return$(this.contents();});
});
上面的示例很有效,但我真正想做的是保持outputplain和OutputReplace作为变量,以便稍后可以将它们发送到模板。然而,我不知道如何在不输出到页面的情况下进行替换


我不限于使用replaceWith,任何允许我从变量中删除标记的解决方案都是受欢迎的。

您可以使用temp jQuery对象(dom),如

//模拟用户输入
$('输入').val('和');
//渲染
$(“#输入”)。单击(函数(){
var输入=$(this.val();
//html呈现
$('#outputplane')。文本(输入);
变量$tmp=$(''{
html:输入
});
$tmp.find('a').contents().unwrap();
var replaced=$tmp.html();
//素色
$(“#输出替换”)。文本(替换);
});


使用$('a').attr('href',LINKHERE);你想在replaceWith之后获得#input value吗?是的,replaceWith只应该更改加载的值,而不是输入的实际值(用户可能需要进一步调整)。在$tmp定义的末尾缺少分号(stackoverflow不允许我修复)。否则,这将非常有效。非常感谢!
$("a").replaceWith(function() { return $(this).contents(); }).val();
input: <input type="text" id="input"/><br />
plain output: <div id="outputplain"></div><br />
replaced output: <div id="outputreplaced"></div><br />
// simulate user input
$('#input').val('<a href="http://stackoverflow.com">me</a> and <a href="http://stackexchange.com">you</a>');

// try to render
$('#input').click(function() {
    var input = $(this).val();

    // html rendered
    $('#outputplain').html(input);

    // plain rendered
    $('#outputreplaced').html(input);
    $("#outputreplaced a").replaceWith(function() { return $(this).contents(); });
});