能使用CSS完成的效果,尽量不要使用HTML原标签。如<strong>等
使用jquery选择器选择页面元素时:
如果该元素在当前页面上只出现了一次,避免使用class选择器,请为该元素设置id通过id进行选择 class的出现应该是:1,批量操作css。 2:JQ的批量操作,否则不推荐使用选择器速度排行榜:
1:id :等于getElementById() 2:tag :等于getElementsByTagName() 复杂页面,最好等选出来在用过滤选择器,不要一次性写在一个string里, 因为当有nth|eq|gt|lt|first|last|even|odd 的时候,选择器会从左向右,多次选择,保存,过滤。效率很低。 除非在特殊情况下, 否则每一个js事件(例如:click, mouseover等。)都会冒泡到父级节点。 当我们需要给多个元素调用同个函数时这点会很有用。代替这种效率很差的多元素事件监听的方法就是,你只需向它们的父节点绑定一次。 比如,我们要为一个拥有很多输入框的表单绑定这样的行为:当输入框被选中时为它添加一个class传统的做法是,直接选中input,然后绑定focus等,如下所示:以下是引用片段:
$("#entryform input").bind("focus", function(){ $(this).addClass("selected"); }).bind("blur", function(){ $(this).removeClass("selected"); }); 当然上面代码能帮我们完成相应的任务,但如果你要寻求更高效的方法,请使用如下代码:以下是引用片段:
$("#entryform").bind("focus", function(e){ var $cell = $(e.target); // e.target 捕捉到触发的目标元素 $cell.addClass("selected"); }).bind("blur", function(e){ var $cell = $(e.target); $cell.removeClass("selected"); }); 通过在父级监听获取焦点和失去焦点的事件,对目标元素进行操作。在上面代码中,父级元素扮演了一个调度员的角色,它可以基于目标元素绑定事件。如果你发现你给很多元素绑定了同一个事件监听,那么现在的你肯定知道哪里做错了。同理,在Table操作时,我们也可以使用这种方式加以改进代码:普通的方式:以下是引用片段:
$('#myTable td').click(function(){ $(this).css('background', 'red'); }); 改进方式:以下是引用片段:
$('#myTable').click(function(e) { var $clicked = $(e.target); $clicked.css('background', 'red'); });