在Javascript变量中存储标记的内容

在Javascript变量中存储标记的内容,javascript,jquery,html,Javascript,Jquery,Html,我正在学习Javascript,我正在尝试学习一些非常基本的东西。基本上,我在标记中有一些文本,我想将它们附加到变量中。但是它不起作用,我不知道为什么。任何帮助都将不胜感激 <html> <head> <script type="text/javascript" src="js/jquery.js"> </script> <script type="text/javascript"> var x = $('p').html();

我正在学习Javascript,我正在尝试学习一些非常基本的东西。基本上,我在
标记中有一些文本,我想将它们附加到变量中。但是它不起作用,我不知道为什么。任何帮助都将不胜感激

<html>

<head>
<script type="text/javascript" src="js/jquery.js"> </script>
<script type="text/javascript">
  var x = $('p').html();
  document.write(x);
</script>
</head>

<body>
  <p class="first">Hello World  </p>
</body>

</html>

var x=$('p').html();
文件。编写(x);

你好,世界

将代码包装到处理程序中:


$(函数(){
var x=$('p').html();
文件。编写(x);
});

在DOM加载并解析后,ready处理程序将启动,这意味着只有在加载和解析后,才能对标记(或DOM)进行操作。

我看不到任何不起作用的内容()

也许你应该写信

jQuery(document).ready(function($){
    //your javascript code
})

但是,如果它也不起作用,我应该提醒您,
document.write
通常会在HTML中到达

Hello World

之前替换您正在运行的脚本的内容。将脚本放在正文中的
标记后面:

<html>
    <head>
        <script type="text/javascript" src="js/jquery.js"> </script>
    </head>
    <body> 
        <p class="first">Hello World</p>
        <script type="text/javascript">
            var x = $('p').html();

            document.write(x);
         </script>
    </body>
</html>

你好,世界

var x=$('p').html(); 文件。编写(x);

您也可以像其他人所说的那样使用jQuery的ready函数,但这是一个低效的解决方案,因为您已经知道在文档中的哪个点加载了
标记。最好是在加载脚本后立即运行脚本,然后使用
$等待整个文档加载。ready

这并不是普遍正确的,我认为对于初学者来说,它包含的信息太多。避免使用$.ready并不总是更好的。例如,在这种情况下(忽略页面加载期间的特殊document.write行为),使用内联
$.ready
相比没有任何效率优势,而$.ready允许您将所有JS放在一个位置(例如外部文件中),避免使用
document.write
-使用
console.log
和浏览器控制台(例如,Firefox中的Web控制台或Firebug)进行测试输出。要打印到页面,最好使用其他DOM方法(例如,通过
$(…).text()
)也可以,当您特别说明看到的内容和希望看到的内容时(即“我在
标记之前打印空值,而不是重复的参数”),这会提出一个更好的问题。在这种情况下,您的期望是明确的,但通常不是。
<html>
    <head>
        <script type="text/javascript" src="js/jquery.js"> </script>
    </head>
    <body> 
        <p class="first">Hello World</p>
        <script type="text/javascript">
            var x = $('p').html();

            document.write(x);
         </script>
    </body>
</html>