最近在研究JS,
无意间看到别人提起这个页面,于是出于好奇.
我就看了看.
http://booth.qzone.qq.com/et.html看到这里的时候我就糊了
function Init()
{
$('et_list_1').innerHTML = doFill(template_2, goods_data_1, 0);
$('et_list_2').innerHTML = doFill(template_2, goods_data_2, 0);
$('et_list_3').innerHTML = doFill(template_2, goods_data_3, 0);
$('et_list_4').innerHTML = doFill(template_2, goods_data_4, 0);
$('et_list_5').innerHTML = doFill(new_template, goods_data_6, 0);
$('et_list_6').innerHTML = doFill(template_2, goods_data_5, 0);//+ doFill(new_template, new_goods_data, 0)
$('et_list_car').innerHTML = doFill(template_2, goods_data_car, 0);
//$('new_et_list').innerHTML = doFill(new_template, new_goods_data, 0);
if(getUrlParam(this.location.href,'t')==2){
ShowNewHouse();
}else{
ShowNewBooth();
}
}首先很明显这个function是在给以下代码写入新的数据<div id="new_booth_list" style="display:block">
<h5  class="title_trade_cata">小买卖(每分钟赚1元)</h5>
<div id="et_list_1"></div>
<div class="clear"></div>

<div class="block_et_1 clearfix">
<h5  class="title_trade_cata">小本生意(每分钟赚2元)</h5>
<div id="et_list_2"></div>
</div>

<div class="block_et_1 clearfix">
<h5  class="title_trade_cata">中档生意(每分钟赚3元)</h5>
<div id="et_list_3"></div>
</div>

<div class="block_et_1 clearfix">
<h5  class="title_trade_cata">有车一族(每分钟赚5元)</h5>
<div id="et_list_4"></div>
</div>

<div class="block_et_1 clearfix">
<h5  class="title_trade_cata">节日生意(每分钟赚5元 -- 圣诞生意已经下架,敬请期待春节生意的上架)</h5>
<div id="et_list_5"></div>
</div>

<div class="block_et_1 clearfix">
<h5  class="title_trade_cata">高档生意(每分钟赚10元)</h5>
<div id="et_list_6"></div>
</div>

<div class="block_et_1 clearfix">
<h5  class="title_trade_cata">品牌车行(每分钟赚20元)</h5>
<div id="et_list_car"></div>
</div>
</div>但是大家请看这句.
$('et_list_1').innerHTML = doFill(template_2, goods_data_1, 0);和我们常用的
document.getElementById("et_list_1").innerHTML = doFill(template_2, goods_data_1, 0);
还是有区别的.
但是我在本地调试的时候.
   $('et_list_1').innerHTML 会出错.我的问题就是$('et_list_1').innerHTML

document.getElementById("et_list_1").innerHTML
有什么区别?如果要使用$('et_list_1').innerHTML
要怎么用呢?

解决方案 »

  1.   

    1、$ 不是 JavaScript 源生支持的功能,一般是在一个JS文件中处理的。不同的场合处理结果不同,比如 jQuery 中 $('id') 和 Dizcuz 环境中 $('id') 的结果是不同的。
    2、要使用 $( 'et_list_1 ').innerHTML ,首先要保证 $ 的行为与 document.getElementById() 相同(至少需要具有innerHTML熟悉)才行。
      

  2.   

    你的意思是说
    他在别的地方有一个
    function  $()
      

  3.   


    function $(id)
    {
       return document.getElementById(id);
    }
    用$比较简洁
      

  4.   

      function $(){return document.getElementById?document.getElementById(arguments[0]):eval(arguments[0]);}这是标准用法,用$取代document.getElementById,很方便的!
      

  5.   

    我还有不明白的地方要请教!
    这个我看懂了是把ID赋值进去.
    function $(id) 

      return document.getElementById(id); 
    } 这个()里面没有变量名是怎么回事啊?
    function $(){return document.getElementById?document.getElementById(arguments[0]):eval(arguments[0]);} 
      

  6.   

    function   $(){return   document.getElementById?document.getElementById(arguments[0]):eval(arguments[0]);}   用于全局的变量,相当于我们通用的setTimeout,无参数,指定了除非空值无对象返回的普遍性。比较return   document.getElementById(id);更加准确和完整。
      

  7.   

    function   $(){return   document.getElementById?document.getElementById(arguments[0]):eval(arguments[0]);}   用于全局的变量,相当于我们通用的setTimeout,无参数,指定了除非空值无对象返回的普遍性。比较return   document.getElementById(id);更加准确和完整。
      

  8.   

    以后可以直接调试
    在浏览器地址栏输入  javascript:alert($)  在回车 就可以看 $是什么了
      

  9.   

    其中的 arguments 就是你传入的参数集合 arguments[0]就是你传入的第1个参数
    调用时可以写 $(a,b,c);  
    那么函数中的 arguments[0] 就对应了传入的 a 
    arguments[1] 就对应了传入的 b

    使用arguments 对象可以实现 js函数的灵活调用,类似java或C#中的重载效果function testFun()
    {
      for(var i =0;i<arguments.length;i++)
      {
         //添加你要的处理代码
         alert(arguments[i]);
      }
    }
    //调用时可以传N个参数testFun(1);

    testFun(1,'hello world!');

    testFun(1,2,3,4);
    或。