使用jQuery,找到id位selector的select标签中有用data-target属性为

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')保存成一个变量以外,请问还有地方需要优化?把匿名函数搬出来有意义吗?


呼唤远方
浏览 1069回答 1
1回答

侃侃无极

$("#selector option[data-target=isme]")既然是循环所有的a,那么不需要用for循环,还多声明了i变量。感觉,只是感觉,应该把onmouseover, onmouseout提出来声明,避免重复的定义function里面的东西需要不需要提出来,不知道。。。感觉从性能上不需要,从代码观赏性上来说,需要吧function&nbsp;onmouseover(){&nbsp;&nbsp;this.style.color&nbsp;=&nbsp;'red'; }function&nbsp;onmouseout(){&nbsp;&nbsp;this.style.color&nbsp;=&nbsp;''; }function&nbsp;bindMouseEvent(target){ &nbsp;&nbsp;target.onmouseover&nbsp;=&nbsp;onmouseover; &nbsp;&nbsp;target.onmouseout&nbsp;=&nbsp;onmouseout; }document.querySelectorAll('a').forEach(bindMouseEvent);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript