Jquery 创建输入作为输入的子项

Jquery 创建输入作为输入的子项,jquery,html,dom,Jquery,Html,Dom,是否可以创建作为文本子级的按钮 <input type="text"> <input type="button" /> </input> 我问的原因是我想做一个组合框。看见在jquery中执行此操作时,按钮不会出现。在常规html中,第二个输入不是第一个输入的子输入(至少在Chrome中) 我可以将文本和按钮放在一个范围内,但我更喜欢像示例中那样创建文本框,以便以后可以像:$(“#test).val()那样检索值 PS我知道还有其他的组合框插件。

是否可以创建作为文本子级的按钮

<input type="text">
    <input type="button" />
</input>

我问的原因是我想做一个组合框。看见在jquery中执行此操作时,按钮不会出现。在常规html中,第二个输入不是第一个输入的子输入(至少在Chrome中)

我可以将文本和按钮放在一个范围内,但我更喜欢像示例中那样创建文本框,以便以后可以像:$(“#test).val()那样检索值


PS我知道还有其他的组合框插件。我想用我自己的来学习。

这是不可能的,因为
input
是一个内联元素-它不能有子元素。

这将导致无效的HTML,所以不可能这样做。 您可以做的是创建一个div,它是一个块元素,并用文本框+按钮内联元素填充它

通过CSS中的一些样式,你可以让你的div看起来像一个文本框,让你的文本框看起来像一个div,没有边框和斜角。这样的结果看起来就像你在这里试图实现的东西


要去掉输入中的文本框,请使用
#YourTextBox{border:none;}

以这种方式嵌套HTML元素不是一种有效的方法。如果您看看jQuery插件的功能,它们通常会用div和其他东西来包装
元素。嗯,您可以采用类似的方法来解决这个问题。

正确的答案是
输入
标记是一个不能包含任何子元素。诸如span之类的内联元素都可以有子元素

Void元素只有开始标记;不能指定结束标记 对于空心元素


i、 e.在HTML5中,永远不会有一个结束标记,即不要使用
。HTML5不是XML,它强烈反对自动结束标记(
/>
),也就是说
不是严格正确的HTML5(尽管它可以用于兼容性目的)HTML5中定义的无效元素标签列表是:
区域、基、br、col、嵌入、hr、img、input、keygen、link、meta、param、source、track、wbr
输入不能有子项,因为它们没有结束。
这里有一些信息:

这是一个无效的html。你不能有这样的东西。