想写个测试网页,看看jquery的createElement对比原生性能大约的差多少,结果是加入jquery包就出错,不加入就能执行,谁能说说什么回事?
FF下错误是 ReferenceError: createTest is not defined
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>jquery createElement 测试</title>
<!-- 
******  问题  ********
注释下面的jquery包就可以执行
-->
<script language="javascript" src="http://code.jquery.com/jquery-1.9.1.min.js" /> 
<script type="text/javascript">
if(!("$" in this)){
this.$= function (str) {
return document.getElementById(str.substring(1));
}
}var createTest= function () {
var tag = $("#toAdd");
var now= new Date();
for(var i=0;i<2000;i++){
tag.appendChild(window.document.createElement("div"));
}
$("#add").innerHTML="加入结束,共用时:"+(new Date()-now);
tag=null;
now =null;
}
</script>
</head>
<body>
<div id="add" style="height:50px;width:100px;border:1px solid #0bb;background:red" onclick="createTest()">点我加上2000个对象</div>
<div id="toAdd" style="height:50px;width:100px;border:1px solid #0bb;background:blue" ></div>
</body>
</html>jquery

解决方案 »

  1.   

    <script language="javascript" src="http://code.jquery.com/jquery-1.9.1.min.js" /> <script language="javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script> script标签要写完整来,不能按照单标签的格式来写而且你区分jq和dom的操作方法var isJQ=true
    if(!("$" in this)){
        isJQ=false
        this.$= function (str) {
            return document.getElementById(str.substring(1));
        }
    }
     alert( isJQ)
    var createTest= function () {
        var tag = $("#toAdd")
        var now= new Date();
        for(var i=0;i<2000;i++){
           if(isJQ) tag.append(window.document.createElement("div"));
           else tag.appendChild(window.document.createElement("div"));
        }
        if(isJQ)$("#add").html("加入结束,共用时:"+(new Date()-now))
        else  $("#add").innerHTML="加入结束,共用时:"+(new Date()-now);
        tag=null;
        now =null;
    }
     
     
      

  2.   

    <script language="javascript" src="http://code.jquery.com/jquery-1.9.1.min.js" />
    改成
    <script language="javascript" src="http://code.jquery.com/jquery-1.9.1.min.js" ></script>另外这个language属性也不需要。你这是标签不规范引起的。