如何使用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>
...谢谢
答案 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)
我不会为你重写它,但有些指示:
document.getElementsByTagName
相当的是jQuery
函数(通常别名为$
,除非您使用noConflict
)。 jQuery的版本几乎接受所有CSS3的选择器(然后是一些)。window.onload
是load
上的window
事件,你可以通过.load
挂钩,但你可能想查看jQuery.ready
一个更好的选择。.click
函数绑定click
处理程序。.each
循环显示上述#1结果中的所有匹配元素。值得花几个小时阅读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()); }); });