Javascript jQuery.parseHTML的反面
Javascript jQuery.parseHTML的反面,javascript,jquery,Javascript,Jquery,jQuery.parseHTML()生成一个数组。我正在寻找一种将其转换回字符串的方法。这是我的首要问题 parseHTML()是将字符串视为html的唯一方法吗 基本上,我将字符串解析为html,以便使用jQuery的find()函数匹配某个元素,然后仅对该部分代码执行替换(有关更多详细信息,请参阅)。那么,解析为html是否有必要呢 听起来您只是想动态地构造一些DOM元素。您只需将一个HTML字符串传递给jQuery函数($()),就可以做到这一点。不需要parseHTML() var my
jQuery.parseHTML()
生成一个数组。我正在寻找一种将其转换回字符串的方法。这是我的首要问题
parseHTML()
是将字符串视为html的唯一方法吗find()
函数匹配某个元素,然后仅对该部分代码执行替换(有关更多详细信息,请参阅)。那么,解析为html是否有必要呢听起来您只是想动态地构造一些DOM元素。您只需将一个HTML字符串传递给jQuery函数(
$()
),就可以做到这一点。不需要parseHTML()
var mySet = $('<div>blah blah blah<span>some stuff</span></div>');
// perform operations on the set just like you would a regular jQuery set
var divsInMySet = mySet.find('div');
// be aware some functions will return unexpected results since your set exists in memory not on the page
// for example anything related to positioning or visibility will fail
var whoKnows = mySet.position();
var dontDoThis = mySet.is(':visible');
var mySet=$('blah blah blahsome stuff');
//对集合执行操作,就像对常规jQuery集合执行操作一样
var divsInMySet=mySet.find('div');
//请注意,某些函数将返回意外结果,因为您的集合存在于内存中,而不是页面上
//例如,任何与定位或可见性相关的操作都将失败
var whowknows=mySet.position();
var dontDoThis=mySet.is(':visible');
jQueryElement.outerHTML()代码>
$(“”)代码>
当我试图在页面中将html对象转换回字符串时,我无法使用该函数
var my_variable="$("<div></div>");
$("my_variable").html();
这是解决首要问题的简单方法:
var $html = $($.parseHTML(html));//transform html string into a jQuery element
$html.append('<div id="other_test"></div>');//handling
console.log("string again, but edited", $html.get(0).outerHTML);//converting it to string again
var$html=$($.parseHTML(html))//将html字符串转换为jQuery元素
$html.append(“”)//处理
log(“再次输入字符串,但已编辑”,$html.get(0.outerHTML)//再次将其转换为字符串
一个简单的函数
函数HTMLTOURCE(选择器){
返回$('').append($(选择器).clone()).html();
};
HTMLTOURCE(“主体”);
“那么,解析为html是否有必要?”是的。如果必须将其恢复为字符串形式,则可以将dom集合包装在另一个元素中,选择该元素,然后获取其html,但是由于浏览器html解析的差异,无法保证html将是原始格式。var string=$(string).find('element').replaceWith('other_element').end().get(0).outerHTML
@adeneo,我如何执行文本替换而不是元素替换?使用regex,但不应该使用regex'es解析HTML。outerHTML不是jQuery函数,它是javascript属性。同样,它也不能像你所说的那样,它将获取一个jQuery对象,并用该对象的整个HTML吐出一个字符串。不过,这里有一个扩展jQuery以实现上面所说的功能的好例子:(jessica的回答)
var $html = $($.parseHTML(html));//transform html string into a jQuery element
$html.append('<div id="other_test"></div>');//handling
console.log("string again, but edited", $html.get(0).outerHTML);//converting it to string again
function htmlToSource(selector){
return $('<div />').append($(selector).clone()).html();
};
htmlToSource('body');