在代码var check = $($.parseHTML("<input type=\"checkbox\" />")[0]);
中,我想知道原因:
check.html()
是一个空字符串check[0]
是<input type="checkbox"></input>
AND check[0] + 'test'
是"[object HTMLInputElement]test"
我想知道如何获得<input type="checkbox"></input>test
答案 0 :(得分:3)
check
将是<input type="checkbox" />
元素周围的jQuery包装器。因此,它不包含其他元素,因此check.html()
会返回""
。请记住,.html()
会返回里面的元素,而不是元素本身。
所有jQuery包装器都是列表式的;在这种情况下,列表只有一个元素(input
),可以在check[0]
找到。
check[0] + 'test'
表示&#34;在此input
元素中添加一个字符串&#34;。原样,这没有任何意义,因此使用input
的字符串表示("[object HTMLInputElement]"
)。
如果你想要字符串&#34; test&#34;在元素之后,您需要将该元素添加到DOM中,然后在之后附加字符串。
$('#somecontainer').append(check).append("test");
答案 1 :(得分:0)
只需删除parseHTML
。
$('<input type="checkbox" />') // Gives you an array of new elements
$('<input type="checkbox" />')[0] // The new input element
从那里......不要连接HTML。将元素插入到应该位于的位置。否则,如果您在HTML上下文中使用文本,则可能会遇到转义问题。