0

为什么这段代码输出 4 而其他所有内容都没有输出?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>jQuery</title>
    <script src="jquery-1.9.1.js"></script>
    <script>
    $(document).ready(function() {
      var par = $("p");
      document.write(par.length);
    });
    </script>
</head>

<body>
    <p>I am one</p>
    <p>I am two</p>
    <p>I am three</p>
    <p>I am four</p>
</body>

</html>
4

3 回答 3

3

在文档准备好后调用 document.write 时,它​​会从文档中删除所有内容,因为它调用 document.open 会清除所有内容

看起来你想要的只是附加par.length到身体

$(document).ready(function() {

    var par = $("p");
    $('body').append(par.length);

});
于 2013-09-16T00:46:10.450 回答
0

在正文中创建另一个标签。

<div id="plength"></div>

然后添加如下代码

$(document).ready(function() {
  var par = $("p");
  $('#plength').text(par.length);
});

在此处运行示例http://jsfiddle.net/rajeshmepco/Bk6bZ/

于 2013-09-16T01:01:39.133 回答
0

当文档准备好时,您已经执行了脚本 - 很好。但是 document.write() 将直接写入现有文档,替换那里的内容,因此您的段落会消失。

由于您使用的是 jQuery,因此最好让 jQuery 为您添加项目:

$("body").append("<p>Paragraph count:"+$("p").length+"</p>");
于 2013-09-16T00:47:50.313 回答