jQuery vs Javascript示例

jQuery vs Javascript示例,javascript,jquery,Javascript,Jquery,我在读w3schools时发现了这个例子: <body> <p>Hello World!</p> <p>The DOM is very useful!</p> <p>This example demonstrates the <b>length</b> property.</p> <script type="text/javascript"> x=document.getE

我在读w3schools时发现了这个例子:

<body>

<p>Hello World!</p>
<p>The DOM is very useful!</p>
<p>This example demonstrates the <b>length</b> property.</p>

<script type="text/javascript">
x=document.getElementsByTagName("p");

document.write("------<br />");
for (i=0;i<x.length;i++)
  { 
  document.write(x[i].innerHTML);
  document.write("<br />");
  }
document.write("------");
</script>
</body>

你好,世界

DOM非常有用

此示例演示了length属性

x=document.getElementsByTagName(“p”); 文件。写(“----
”);
对于(i=0;i调用
document.write
在document.ready重写文档之后。然后单击
document的返回值。getElementsByTagName
是一个实时列表列表变为空

因此,实际发生的是文档包含

<p>Hello World!</p>
<p>The DOM is very useful!</p>
<p>This example demonstrates the <b>length</b> property.</p>

调用
文档。在document.ready重写文档后写入
。然后单击
文档的返回值。getElementsByTagName
是一个实时列表列表变为空

因此,实际发生的是文档包含

<p>Hello World!</p>
<p>The DOM is very useful!</p>
<p>This example demonstrates the <b>length</b> property.</p>

不要使用
文档。加载DOM后编写
,就像使用jQuery的
$(文档)一样。准备好了
。事实上,根本不要使用
文档。使用jQuery编写
。改为使用DOM操作。例如:

$(document).ready(function() {
    var x = $('p'),
        toAdd = '';

    x.each(function() {
        toAdd += this.innerHTML;
    });

    $(document.body).append(toAdd);
});


基本上,学习jQuery的范例和模式,并使用它们。不要期望能够将jQuery语法随机放入Javascript代码中。此外,不要听W3C的话。

不要使用
文档。加载DOM后编写
,就像jQuery的
$(文档)一样.ready
。事实上,不要使用
文档。使用jQuery编写
。改用DOM操作。例如:

$(document).ready(function() {
    var x = $('p'),
        toAdd = '';

    x.each(function() {
        toAdd += this.innerHTML;
    });

    $(document.body).append(toAdd);
});


基本上,学习jQuery的范例和模式,并使用它们。不要期望能够将jQuery语法随机地放入Javascript代码中。此外,不要听W3C的话。

你应该阅读
文档。从适当的中编写

在未调用的情况下写入已加载的文档将自动执行
文档。打开
调用。完成写入后,建议调用document.close(),通知浏览器完成页面加载

document.ready
事件上运行jQuery代码时,文档(结构)已加载。这意味着调用
document.open

如果目标中存在文档,此方法将清除该文档(请参见上面的示例)

这意味着所有现有内容都将被删除。因此,您的代码无法访问
p
元素,因为它们不再存在

为什么没有jQuery它可以工作?

在原始代码中,JavaScript在结构完成加载之前执行(因为它本身就是结构的一部分)。因此不会调用
document.open
,也不会清除内容:

如果
document.write()
调用直接嵌入到HTML代码中,则它不会调用
document.open()



几乎没有理由使用
文档。编写
。如果要修改文档,请使用适当的DOM操作方法。

您应该阅读
文档。从适当的中编写

在未调用的情况下写入已加载的文档将自动执行
文档。打开
调用。完成写入后,建议调用document.close(),通知浏览器完成页面加载

document.ready
事件上运行jQuery代码时,文档(结构)已加载。这意味着调用
document.open

如果目标中存在文档,此方法将清除该文档(请参见上面的示例)

这意味着所有现有内容都将被删除。因此,您的代码无法访问
p
元素,因为它们不再存在

为什么没有jQuery它可以工作?

在原始代码中,JavaScript在结构完成加载之前执行(因为它本身就是结构的一部分)。因此不会调用
document.open
,也不会清除内容:

如果
document.write()
调用直接嵌入到HTML代码中,则它不会调用
document.open()



几乎没有理由使用
文档。编写
。如果要修改文档,请使用适当的DOM操作方法。

这是因为每次jQuery在文档中写入时,您都会生成一些新元素,因此$(document).ready()中的所有脚本都应该在另一次执行
也许解决方案是写入另一个元素,如“div”

$(文档).ready(函数(){
x=document.getElementsByTagName(“p”);
$('div.myDiv').html(“----
”);
对于(var i=0;i,这是因为每次jQuery在文档中写入时,您都会生成一些新元素,因此$(document).ready()中的所有脚本都应该在另一次执行
也许解决方案是写入另一个元素,如“div”

$(文档).ready(函数(){
x=document.getElementsByTagName(“p”);
$('div.myDiv').html(“----
”);
对于(var i=0;这是因为您使用W3Schools进行学习。W3Schools是一个糟糕的参考资料,充满了不完整的代码。谢谢您的参考资料……但为什么上面的代码不起作用呢?作为Raynos所说的后续内容,我将提供此链接,因为如果您继续从W3Schools学习,您最终会遇到它:使用
文档。getElementsByTagName
与jQuery一起使用…非常棒。
这是因为您使用W3Schools进行学习。W3Schools是一个糟糕的参考资料,并且充满了不完整的代码。谢谢您的参考资料…但是为什么上面的代码不起作用呢?作为Raynos所说的后续内容,我将提供此链接,因为如果你继续学习W3MeStudio:使用<代码>文档。GETelEngsByTaGeNe/<代码> jQuery…精彩。
$(document).ready(function() {
    var x = $('p'),
        toAdd = '';

    x.each(function() {
        toAdd += this.innerHTML;
    });

    $(document.body).append(toAdd);
});
$(document).ready(function()          {
x=document.getElementsByTagName("p");
     $('div.myDiv').html("------<br/>");
     for (var i=0; i<x.length; i++)
     { 
        $('div.myDiv').html(x[i].innerHTML());
        $('div.myDiv').html("<br />");
     }
     $('div.myDiv').html("------");
 });