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