关于js问题

为什么这样写会报错,把aaa[i]改成this后就正常

var aaa = document.getElementsByTagName('button');

    for(var i = 0;i<aaa.length;i++){

      aaa[i].onclick = function(){

        aaa[i].className = 'red';

      }


赵日天l
浏览 1424回答 3
3回答

stone310

之所以找不到aaa[i],因为i的值已经是aaa.length(因为页面加载的时候for循环已经结束,而click事件还未触发,所以这时候click事件里面的i已经是aaa.length);所以aaa[i]属于数组越界,是不存在;而改成aaa[i-1]就能获取最后一个aaa元素;this指当前调用对象,这里就是指触发click事件的对象

慕的地8582982

VSOKZQZVRADGCYAKAOKTDSVXTCSBXGCLTPLUEFIFVXHKYHCRHDNWFUKTOKGQNVYTDEHCMWSVYUQZIIRGWFBLBKNJBQUDACSJLUKSHJFWZUXTUXOKSPMBETCMULAQSPLADZIDQSOXAPKTCGPEAWGDMPLHQYDMIRPSHDTHKWYGTXNHKUVXDDVOAKXRKLRJCGWXNDNNERANIVQWTUYSJEQJFZJTDMCNZFSCQQJUESSXTGNTAKHKEPYVRYFKOORVPYLRREJEEHLBIVWRHIEEQTROBYGKJJQAUSVSOIZGTUHEYNIFJEFJMVUPKXYTHYBLHBSRHAKTURBAKHUKUUUTDAZGGDMFYEYIPOYZVQGXEESLKBSVVISOZMMLBBRJFVPKKQMTKVCPIIYLSFTMNWZZSMSQIWDRURBMFQOAXVFQJMMFVSRBYHXEKNWDKTDKWPVLPFIIRRVYBNISCGSFVVPGQIBBQHTDXSIBSLVMIFZCVOHOCLZFPYFCFUOLRFMFPJBEQKUXHYXKSFRRHDNDGPQTKQPZTDAVUIBACSTHHNKQCSSYEENGKWFOLFFXREFPVLLMXGRATTKRGNUKDUEKGXKTDHPRHHXQEXQHTTMMSWWJIRTKBBEENEUKHFCQMMSYCVCBURXQMCGRIVHYSXOBRURFFOVIMFEYYYOYXHXRUTDWPVFYYVRHFSFIQWCJALRDEXVTJCSWGAQATULLKUKWLUYSFCTMZWRKMWJZFLUEESVYLLEEBHCZXJZMCDHAJYEPACFQGJAKKKBNAEYHMZYPWBRKGQIZVLTXHRAKKKKQQQBQZSITTMTUHOAJCSGPWRUQKSYGWGQEYXUKENWTIFIRHEIWFPYGQMCRUXLIYBKGXLBXHYGIEUXGRTJG
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript