关于jq中的遍历问题

有一个ul,里边每个li 标签都有一个img元素,imgsrc只有/选中.png和/未选.png两个值,有个click事件判断所有的src如果存在/未选.png就把所有的图片都换成/选定.png,我试了用var imgval = attr(‘src’),结果只能获取到第一个值,然后用数组,each获取到每一个src然后push进去,用$.inArray()进行判断,结果点击事件是触发不了的,然后,,我也不知道是怎么回事了。。。

            var imgVal = [];
            list.find('ul li .img').each(function () {
                imgVal.push($(this).attr("src"));
            });
            if ($.inArray('未选.png',imgVal)>0){
                list.find('ul li .img').attr('src', '选定.png');
            } else {
                list.find('ul li .img').attr('src', '未选.png');
            }
阅读 2.5k
2 个回答

把if里面改为$.inArray('未选.png', imgVal) > -1就可以了。原因是inArray()返回的是第一次匹配到的索引值,是从0开始的,匹配不到返回-1,类似于元素js的.indexOf()方法。

应该each列表li吧?然后$(this).find('img').attr('src')

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏