2012-03-24 54 views
1

这就是我想要做的事:如何将jQuery对象转换为XML/HTML?

$('<abc/>').append('<x/>').html() 

我希望它是:"<abc><x/></abc>"。我错了吗?

+0

内容请进一步解释,你的问题让0感觉现在 – SpYk3HH 2012-03-24 05:11:07

+0

我试图建立从jQuery的HTML元素。我只需要构建这个文本:''(例如)。 – yegor256 2012-03-24 05:12:27

+0

使用innerHtml帮助吗? – 2012-03-24 05:20:19

回答

2

你可以拥抱在父容器的元素作为这样的一个例子:

$('<div>').append($('<abc/>').append('<x/>')).html() 

你会得到你想要的结果:

http://jsfiddle.net/tuTAK/2/

+0

谢谢你,你是对的。但它不适用于XML + XSL。看起来我的问题在别的地方。 – yegor256 2012-03-24 05:20:37

+0

好运yegor – 2012-03-24 05:23:28

+0

这是完整的问题:http://stackoverflow.com/questions/9834487。如果你添加你的代码,你会看到这个问题 – yegor256 2012-03-24 05:24:42

0

你应该添加一个id属性到您的ABC标签

<abc id="AbcId"> 

和引用这样的:

$('#AbcId').append('<x/>') 
+0

他没有引用已存在的元素。他想创建一个新元素$('')。 – craftsman 2012-03-24 05:12:45

+0

我没有HTML页面,我正在创建动态jQuery元素。你错误理解了这个问题 – yegor256 2012-03-24 05:13:20

+0

好的,我明白了。道歉误解。 – nightshifted 2012-03-24 05:25:43

0

的.html()返回所选对象的子元素。在你的情况下,它应该返回此:

<x></x> 

如果你想摆脱的HTML,你可以编写一个简单的函数:

$.fn.outerHTML = function() { 
    return $('<div>').append(this.eq(0).clone()).html(); 
}; 

现在,如果你重新写有outerHTML代码() :

$('<abc/>').append('<x/>').outerHTML(); 

你会得到这样的:

<abc><x><x/></abc> 
0

在这种情况下,我想你有什么是接近正确的,例如,建立一个带有标题的div,标题为“标题”;

$("<div />").append($("<h1 />").text("Title"))

或一些文字后,用AP元素一个div中有一个链接

$("<div />").append($("<p />").text("Mail Me Here:").append($("<a />").attr("href", "mailto:[email protected]").text("[email protected]")))

它在考虑

[email protected]"))).appendTo($("body"))

保留追加到身体你也可以.prepend和.prependTo元素

见从追加新的数据表中的行作为

found in this fiddle i made for another answer

+0

然后呢? '的.html()'? – yegor256 2012-03-24 05:15:46

+0

然后什么也没有,除非你想把它附加到 – SpYk3HH 2012-03-24 05:19:04

0
$("<abx>").append("<x/>")[0].outerHTML 

结果:

"<abx><x></x></abx>" 

的.html()只输出的

$("<abx>")