外部JS文件的id/class/元素的选择问题
本帖最后由 unevil 于 2013-07-18 01:44:34 编辑
新手在学习Javascript中,因为CSS的关系,习惯把JS写在外部文件中,这样代码比较清爽.但是遇到了两个问题,所以来请教大家.
1,加载顺序问题,script1.js中第一句修改p元素显示日期,可是只有加载js文件的语句写在id=p1的标签后才会显示时间.我已经使用window.onload.照现在这样写,就无法显示.
2,让我很困扰的问题,我如何在一个js文件中写整个html的js代码(如何控制选择器)?比如下面的,我如何指定js文件中的Draw()在id=canvas1的canvas中画线?没有像CSS选择器那样.#指定id和class的吗?jQuery好像可以,但是还没有看到那,不知道现阶段是否可以解决?有触发事件的还好,直接写function就可以.但是没有触发条件的,直接修改元素的,怎么指定呢?
谢谢
如下HTML代码:
<!DOCTYPE html><meta charset=utf-8>
<script src="script1.js"></script>
<div class="twodiv">
<p id= "p1"></p>
</div>
<h2>标题</h2>
<p>段落。</p>
<button>点击</button>
<canvas id="canvas1"></canvas>
window.onload=document.getElementById("p1").innerHTML=Date();
function draw(){
....
...
}
------解决方案--------------------window.onload 应该赋值应该函数。
你这样,是把 Date() 值赋给他了。
window.onload=function(){
// 在这里写你的逻辑代码
};
------解决方案--------------------第二个不理解。。。
你的意思该不会是$("#canvas1")选择器吧?
------解决方案--------------------
1.js是不存在这样的用法的,js和DOM的结合才实现了html元素操作,多了解下dom和js的基础知识吧。
2.放在开头,当js加载执行的时候,这时候虽然是对p进行操作,但是因为整个文档才加载到js部分,下面的body以及body中的任何内容(如p)都还没有加载,所以这时候p是不存在的,所以对P的操作是无效的,所以不是没有执行,而是无效的执行。