我知道jQuery的一般模式是选择DOM元素然后对它们进行操作。通过使用如下选择器进行选择:
$( "div.foo" )
我目前正在研究一些代码并发现了这个:
var buttons = $("<tr>").addClass("buttons").append("<td>")
和
var db_name = $("<input name='db_name' type='text' placeholder='Enter db name here'>").val(_db_name);
一直在寻找答案的高低,但无法理解为什么$(&#34;&#34;)在正确的选择器不应包含尖括号时有效。
我可以问一下是否有另一种方法来编写具有尖括号的选择器,这就是代码工作的原因?
答案 0 :(得分:6)
$("<tr>")
不是选择器,它会为jQuery(html)
tr
元素外观
您的代码var buttons = $("<tr>").addClass("buttons").append("<td>")
使用类按钮创建一个新的tr
元素,并向其添加td
元素。但请注意,它没有添加到文档中(它仍然只是内存中的dom对象)
如果要在页面中查看,请将buttons
对象添加到表中
答案 1 :(得分:1)
如果参数字符串包含尖括号,那么它会创建一个新元素,然后您可以操作或添加到dom:
$("<tr>").addClass('row').appendTo('#table');
没有括号,它是一个选择器,它从DOM中选择一个元素。
如果您查看jQuery docs这些是我们看到的两个差异:
// selects an element
jQuery( selector [, context ] )
// creates an element
jQuery( html [, ownerDocument ] )