我的HTML代码构造方式如下:
var s = $('<input type="date" id="date-value"/>');
我想在我的jQuery选择中提取html,作为一个单独的元素:
<input type="date" id="date-value"/>
我尝试了各种内置方法,例如s.text()
,s.innerHTML
等,但它们没有用。
JSFiddle:http://jsfiddle.net/fkgaqtb2/
答案 0 :(得分:1)
如果您想要选择器中的新元素,请使用jQuery&#39; .clone函数。
alert(s.clone().prop('outerHTML'));
这将输出看起来像你正试图进入小提琴的字符串。
在任何情况下,如果您只想要元素的字符串表示,请记住s
是一个选择器,因此您需要jQuery的.prop方法。
你想要:
s.prop('outerHTML')
。
仅供参考,此版本的问题类似于another
记得HTML元素(不是jQuery选择,这就是我们需要prop
的原因)也有outerHTML
,而不仅仅是innerHTML
!
答案 1 :(得分:0)
创建一个临时div
,然后克隆你的元素并附加到它:
alert($('<div>').append(s.clone()).html());
答案 2 :(得分: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();