Javascript .html()返回空

Javascript .html()返回空,javascript,jquery,html,Javascript,Jquery,Html,我正在为我的web应用程序使用Jquery,我正在创建一个数字上下框。为此,我将用预定义的div替换输入字段 问题是,我想获得原始输入框的html,因为它可能添加了样式等,我希望我的.replaceWith版本也具有这些样式 e、 g. 当前代码 新代码 正如你们所看到的,我需要在生成父元素的同时重新生成输入控件。目前我的做法是重新生成所有内容,并使用.replaceWith()方法粘贴所有内容 有什么想法吗?我不完全确定你想做什么,但看起来你想在输入周围包装一个父div,然后再添加一个di

我正在为我的web应用程序使用Jquery,我正在创建一个数字上下框。为此,我将用预定义的div替换输入
字段

问题是,我想获得原始输入框的html,因为它可能添加了样式等,我希望我的
.replaceWith
版本也具有这些样式

e、 g.
当前代码

新代码


正如你们所看到的,我需要在生成父元素的同时重新生成输入控件。目前我的做法是重新生成所有内容,并使用
.replaceWith()
方法粘贴所有内容


有什么想法吗?

我不完全确定你想做什么,但看起来你想在
输入
周围包装一个父
div
,然后再添加一个
div
。如果是这种情况,您可以这样做:

$("input").wrap("<div></div>").after("<div></div>");
$("someselectorforyournewdiv").addClass( $("input").attr("class") );
// and/or
$("someselectorforyournewdiv").attr( "style", $("input").attr("style") );
$(“输入”).wrap(“”)在(“”)之后加(“”);
这样,您就不需要替换
输入
,因为它将保留在DOM中。将围绕选定元素包装参数,并在选定元素后插入内容


这里有一个。

我不完全确定您想做什么,但看起来您想在
输入
周围包装一个父
div
,然后在其后面添加另一个
div。如果是这种情况,您可以这样做:

$("input").wrap("<div></div>").after("<div></div>");
$("someselectorforyournewdiv").addClass( $("input").attr("class") );
// and/or
$("someselectorforyournewdiv").attr( "style", $("input").attr("style") );
$(“输入”).wrap(“”)在(“”)之后加(“”);
这样,您就不需要替换
输入
,因为它将保留在DOM中。将围绕选定元素包装参数,并在选定元素后插入内容


这里有一个。

类型为
input
的元素实际上并不包含HTML,但是
input
标记将是其父容器中包含的HTML(
div
)。所以你可以考虑把它放在一个专用的内部容器中,并把它放在那个容器中。

元素<代码> >输入< /代码>确实不包含HTML,但是,<代码>输入<代码>标签将是包含在它的父容器中的HTML(在本例中是<代码> div < /代码>)。所以,你可以考虑把它放在一个专用的内部容器中,并把它替换掉。

也许你用的是一个错误的选择器

给你的输入或任何东西一个id,然后做喜欢的事情

$('input#yourid').replaceWith('Insert your desired html');

参考

可能您使用了错误的选择器

给你的输入或任何东西一个id,然后做喜欢的事情

$('input#yourid').replaceWith('Insert your desired html');
Reference

元素不是容器,因此它没有HTML值。如果要查找框中输入的文本,请改用
.val()
方法。

元素不是容器,因此它不会有HTML值。如果要查找在框中输入的文本,请改用
.val()
方法。

jQuery的
.html()
如果在
元素上使用,则返回空值,因为它没有内容,只有属性

事情是我想得到原始输入框的html,因为它可能有样式等添加

您可以获取原始输入框的
样式
属性,然后将它们应用于生成的
元素,例如:

$("input").wrap("<div></div>").after("<div></div>");
$("someselectorforyournewdiv").addClass( $("input").attr("class") );
// and/or
$("someselectorforyournewdiv").attr( "style", $("input").attr("style") );
(显然要调整选择器以适应。)

但是生成的元素不是有自己的样式来制作一个漂亮的“上下框”吗?如果您也应用了输入中的原始样式,它可能不会很好地工作,除非您选择了某些不会影响形状的样式,例如颜色或诸如此类的样式。

jQuery的
.html()
如果在
元素上使用它,则返回空,因为它没有内容,只有属性

事情是我想得到原始输入框的html,因为它可能有样式等添加

您可以获取原始输入框的
样式
属性,然后将它们应用于生成的
元素,例如:

$("input").wrap("<div></div>").after("<div></div>");
$("someselectorforyournewdiv").addClass( $("input").attr("class") );
// and/or
$("someselectorforyournewdiv").attr( "style", $("input").attr("style") );
(显然要调整选择器以适应。)


但是生成的元素不是有自己的样式来制作一个漂亮的“上下框”吗?如果您也应用了输入中的原始样式,则可能效果不太好,除非您选择了某些不会影响形状的样式,例如颜色或诸如此类的样式。

您可以发布您正在使用的JQuery代码吗?这样可以更容易地弄清楚发生了什么。您可以发布您正在使用的JQuery代码吗?我不认为OP是指内容中输入的HTML,而是指元素本身的HTML,“因为它可能添加了样式等”@James Allardice Fair,但它似乎值得一提以防万一。我不认为OP是指内容中输入的HTML,而是指元素本身的HTML,“因为它可能添加了样式等”@James Allardice Fair,但它似乎值得一提以防万一。我不认为OP是指内容中的
输入的HTML,而是指元素本身的HTML,“因为它可能添加了样式等”@jamesalardice我也不是指内容;我的意思是从容器中抓取HTML
本身。我想说的是,在
input
上调用
html()
不会给你
-你需要在它的容器上调用它。@jamesalardice不用担心。:)我不认为OP是指内容中输入的HTML,而是指元素本身的HTML,“因为它可能添加了样式等”@jamesalardice我也不是指内容;我的意思是从容器中抓取HTML
本身。我想说的是,在
input
上调用
html()