如何使用jQuery重写代码

时间:2010-09-25 13:27:20

标签: javascript jquery

如何使用jQuery重写代码?

 <script type="text/javascript">
    window.onload = function(){
        var array = document.getElementsByTagName('div');
        for (var i=0; i<array.length; i++) {
            (function(i) {
                array[i].onclick = function() {
                    alert(i);
                }
            })(i);
        }
    };
    </script>
    <div>0</div>
    <div>1</div>

...谢谢

5 个答案:

答案 0 :(得分:4)

如果您确实想要提醒索引:

示例: http://jsfiddle.net/Ksyr6/

   // Wrapping your code in an anonymous function that is passed as a parameter
   //    to jQuery will ensure that it will not run until the DOM is ready.
   // This is a shortcut for jQuery's .ready() method
$(function() {
    $('div').each(function( i ) {
         $(this).click(function() {
            alert( i );
         });
     });
});

这将查找标记名为'div'的所有元素,并对它们进行迭代,分别指定一个警告其索引的单击事件。

或者如果索引不重要,则变得更简单:

示例: http://jsfiddle.net/Ksyr6/1/

$(function() {
    $('div').click(function() {
         // You have access to the element that received the event via "this"
         // alert(this.id) will alert the ID of the element that was clicked
        alert( 'i was clicked' );
     });
});

这里正在进行相同的迭代,但这是隐含的。 jQuery遍历'div'元素,为每个触发警报的click事件处理程序提供。

这是jQuery的一个很好的功能。你传递一个CSS选择器,它找到匹配的元素,并自动迭代它们,激发你调用的任何方法。

答案 1 :(得分:2)

我不会为你重写它,但有些指示:

  1. jQuery与document.getElementsByTagName相当的是jQuery函数(通常别名为$,除非您使用noConflict)。 jQuery的版本几乎接受所有CSS3的选择器(然后是一些)。
  2. jQuery相当于window.onloadload上的window事件,你可以通过.load挂钩,但你可能想查看jQuery.ready一个更好的选择。
  3. 您可以使用.click函数绑定click处理程序。
  4. 您可以使用.each循环显示上述#1结果中的所有匹配元素。
  5. 值得花几个小时阅读jQuery API documentation。还有(在猜测中)大约有157,342本书可供使用(显然需要更长的阅读时间)。 ;-)从长远来看,这样的阅读将节省你很多的时间,即使它最初似乎会减慢你的速度。玩得开心!

答案 2 :(得分:0)

jQuery(function(){
     jQuery('div').bind('click',function(){
            alert('alert');
     })
});

答案 3 :(得分:0)

$(function(){
  $('div').each(function(i){
    $(this).click(function(){
      alert(i);
    })
  });
});

答案 4 :(得分:-1)

jQuery('document').ready(function(){

jQuery('div').click(function(){

alert(jQuery(this).html());

});




});