Jquery和javascript范围

时间:2012-03-26 06:20:10

标签: jquery scopes

<script type="text/javascript" src="jquery-1.7.2.js"></script>
<script type="text/javascript">

var mySite={};

mySite.title=$('h1');
mySite.makeRed= function(){
return mySite.title.css('color','red');
};


$(document).ready(function() {

mySite.makeRed();


});


</script>

美好的一天。为什么函数内部调用的方法不会返回任何内容?

2 个答案:

答案 0 :(得分:1)

我认为这些脚本标签位于文档的HEAD中。

当您在就绪处理程序之外执行此操作时:

 mySite.title=$('h1');

元素h1在DOM中可能尚未存在。这就是ready处理程序的目的:确保DOM已准备就绪。

您可以在正文末尾移动脚本标记(在</body>标记之前)。这与就绪处理程序具有相同的结果,因为DOM是按顺序解析的。

或者你可以在准备好的处理程序中抓住H1元素。

答案 1 :(得分:0)

你拼错了一些东西。

var mySite={};

mySite.title=$('<h1/>').html("Hello World"); // Set some text and create the tag tag!

mySite.makeRed= function(){
return mySite.title.css('color','red');
};


$(document).ready(function() {



   $("body").append(mySite.makeRed()); // Append it to the dom

});​

http://jsfiddle.net/eZzYz/1/