2015-06-08 33 views
2

我的HTML代码,以这样的方式构建的,它是在以下格式:如何从我的jQuery选择中提取HTML字符串?

var s = $('<input type="date" id="date-value"/>'); 

我想提取的HTML我的jQuery的选择里面,作为一个单独的元素:

<input type="date" id="date-value"/> 

我尝试了各种内置方法,如s.text(),s.innerHTML等,但他们没有工作。

的jsfiddle:http://jsfiddle.net/fkgaqtb2/

+0

为什么不's.html()'? –

+2

我不明白你想要什么?你已经用你的'append'语句创建了新元素(在你的小提琴上) – JClaspill

+0

@EdCottrell因为它不起作用。但是的确,更好的问题是_why_? – Nit

回答

1

如果你想从选择一个新的元素,使用jQuery的.clone功能。 alert(s.clone().prop('outerHTML'));

这将输出字符串,它看起来像你试图让你的小提琴。

无论如何,如果你只是想要一个字符串表示的元素,请记住s是一个选择器,所以你需要jQuery的.prop方法。 你想:
s.prop('outerHTML')

仅供参考,此版本的问题类似于another
请记住,HTML元素(不是jQuery选择,这就是为什么我们需要prop)也有outerHTML,而不仅仅是innerHTML

+0

在这种情况下,将它标记为重复不是更好吗? – Anonymous

+0

我可悲的是不知道如何,或者还没有代表权限。小心提供解释如何做的链接?谢谢! –

+1

您可以点击问题上的“标志”选项>转到“重复...”>放入重复问题的链接>点击“投票关闭”。 – Anonymous

0

创建一个临时div,然后克隆你的元素和追加到它:

alert($('<div>').append(s.clone()).html()); 
0

如果你想外的HTML,您可以使用:

var s = $('<input type="date" id="date-value"/>'); 
$('<div>').append(s.clone()).html(); 

或者如果您经常需要它,您可以添加一个新方法:

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

然后你可以使用:s.outerHtml();