哪个更适合调用INSERT/UPDATE/DELETE语句?命令或查询?我认为"命令",因为"查询"意味着你提出一个问题,并期望得到你的问题的答案(和更多的信息,而不仅仅是"是的,这个操作是成功执行的,并且,可选地,这里是你的插入ID") .
只是来自中级Web应用程序开发人员的问题,他也是一名通信专业人员,并且是一位喜欢特异性的人.:)
就我所知,以下代码应该可以工作,创建一个<div>元素,然后创建一个<p>元素; 表达式应该导致一个带有两个元素的jQuery对象:
$("<div>first element's content</div>").after("<p>second element's content</p>");
Run Code Online (Sandbox Code Playgroud)
但是,我得到的是非常不同的.文档(参见标题"插入断开的DOM节点")告诉我上面的代码应该生成一个jQuery对象,抓取两个HTML片段并构建两个DOM元素.但是,我所获得的,在几个不同版本的jQuery中,都高于1.4,是一个只有1个节点的jQuery对象.但是,下面的代码工作正常,返回(我相信)正确的jQuery对象,里面有两个元素:
$("<div></div>").after("<p>second element's content</p>");
Run Code Online (Sandbox Code Playgroud)
这个例子也适用:
$("<div></div>").after("<p>second element's content</p>").after("<p>third element's content</p>");
Run Code Online (Sandbox Code Playgroud)
.after()如果创建的第一个DOM节点为空,则该方法可以正常工作,但是当它不存在时(不管后续DOM节点的内容是否附加到它),该方法似乎没有问题.
我是否遗漏了有关jQuery的内部,奇怪的DOM问题和/或JavaScript特性的问题,或者这只是一个jQuery错误,从版本1.4到1.7继续存在?
(这是一个微薄的JSFiddle,很明显地展示了这个问题.)
为什么我不能查询我刚刚通过append()添加的元素?
$('body').append('<div id="testing"></div>');
if($("#testing").length == 0)
alert("WTF! Testing div should be there!");
Run Code Online (Sandbox Code Playgroud)
是否有某种布局在JS完成运行之前不会发生?
我怎么能绕过这个?有没有其他方法我可以调用创建dom元素立即使用?