原因是我们可以做到
$('<div>some text</div>').prependTo('#someDiv')
所以,这样做也可以:
$('some text').prependTo('#someDiv')
但我们无法将some text
更改为body
? body
和任何文字一样好......
(上面的代码将some text
添加到ID为someDiv
的div中,那么如果我想将单词body
添加到div中会怎样?)
但是$('body')成为body元素的选择器...所以有一条规则说,我们可以使用任何文本作为HTML代码,只要它不是HTML元素的名称吗? / p>
答案 0 :(得分:8)
基本上这永远不会有效:
$('generic text here, *not* a selector or HTML');
总是要么是选择器(找到元素)要么是html(创建元素),you can view the API for $()
here。
你想在这里使用其中一个DOM Insertion methods,.prepend()
在这种情况下:
$('#someDiv').prepend('any text or html here is valid, <b>Hey look bold</b>.');
答案 1 :(得分:1)
如果它包含html标签,那么它被视为html(除了它在第一个标签之前和最后一个之后剥离文本)。例如$("<div>some text</div>")
。否则,它被视为选择器,例如$("some text")
。
答案 2 :(得分:0)
处理文本节点不是JQuery的强项。您可以使用普通的DOM方法:
$('#someDiv')[0].appendChild(document.createTextNode("body"));
答案 3 :(得分:0)
这是因为jQuery在创建HTML片段之前会考虑选择器。 “body”是一个有效的选择器,将用作选择器。
您最好使用prepend函数将HTML或文本添加到节点:
$('#someDiv').prepend('some text');
传递给prepend的值不使用选择器,你可以添加文本“body”。