......省略一 
target.find('input[dataExplain]').each(function () {
        if ($(this).attr('type') == 'password') {
            var pw = $(this);            var text = $('<input type="text"/>');
            var attrs = ['id', 'name', 'style'];
            for (var n in $(this)[0]) {
                if (/^className$/.test(n)) {
                    text.attr(n, $(this).attr(n));
                }
                if (attrs.indexOf(n) >-1) {
                    var attrVal = $(this).attr(n);
                    if (attrVal != null && attrVal != '')
                        text.attr(n, attrVal);
                }
            }
            text.val(pw.attr('dataExplain'));谁给我解释下红色的那句

解决方案 »

  1.   

    我猜:n0='id',n1= 'name',n2='style';indexOf():js函数判断字符串位置的
      

  2.   

    按理说数组根本就没有indexOf这方法呀,这是在肯德基网上订餐的网站中摘下来的,貌似在人家网站上不出错
      

  3.   

    no no no ,2楼的那位,这里的n其实是nextsibling
      

  4.   

    var attrs = ['id', 'name', 'style'];
    上面的attrs直接使用时,值为:id,name,style
      

  5.   

    不对呀,除非它有对数组定义一个indexOf扩展,否则应该是错的吧
    类似于这样:
    Array.prototype.indexOf=function(a){
        return this.toString().indexOf(a);
    };
    alert(attrs.indexOf(n))
    否则应该强制转换一下呀
    attrs.toString().indexOf(n)