var value;
$('#selector option').each(function(){ if ($(this).data('target') == 'isme') {
value = $(this).val();
}
});去年今日头条的一道前端笔试题,对jQuery不太熟悉,不知道除了这种写法有没有更简单的方式?还有一题,简化以下代码:for (var i = 0; i < document.getElementsByTagName('a').length; i++) {
document.getElementsByTagName('a')[i].onmouseover = function () { this.style.color = 'red';
} document.getElementsByTagName('a')[i].onmouseout = function () { this.style.color = '';
}
}除了先把document.getElementsByTagName('a')保存成一个变量以外,请问还有地方需要优化?把匿名函数搬出来有意义吗?
1 回答

侃侃无极
TA贡献2051条经验 获得超10个赞
$("#selector option[data-target=isme]")
既然是循环所有的a,那么不需要用for循环,还多声明了i变量。
感觉,只是感觉,应该把onmouseover, onmouseout提出来声明,避免重复的定义function
里面的东西需要不需要提出来,不知道。。。感觉从性能上不需要,从代码观赏性上来说,需要吧
function onmouseover(){ this.style.color = 'red'; }function onmouseout(){ this.style.color = ''; }function bindMouseEvent(target){ target.onmouseover = onmouseover; target.onmouseout = onmouseout; }document.querySelectorAll('a').forEach(bindMouseEvent);
添加回答
举报
0/150
提交
取消