jq修改src图片地址 .attr is not a function

遇到一个导航使用图标的部分,想用jq修改图片地址一直报错,截图如下:

jq修改src图片地址 .attr is not a function插图

贴一下代码

jq修改src图片地址 .attr is not a function插图1


$(document).ready(function(){
				let $picurl = $('.nav ul li img');
				$picurl[1].attr('src','/themes/mobile/images/list1.png');
				console.log($picurl[0]);
				$picurl.each(function(index,item){
					let $imgurl = item.src.split('/').pop().substring(4,5);
					$imgurl = index;
					console.log(item.src);
					let url = '/themes/mobile/images/list'+$imgurl+'.png';
					
	})
})

调了很久终于解决:

$(…)[0] 返回的是一个dom对象

而 attr() 方法 只能被JQuery对象所使用

所以,可以用$(…).eq()

补充一下

DOM对象和jquery对象的区别

var domObj = document.getElementById(“id”); //DOM对象
var $obj = $("#id"); //jQuery对象;

KaTeX parse error: Expected 'EOF', got '#' at position 3: (“#̲img”).attr(“src…(“#img”)就是获取jQuery对象;

document.getElementById(“img”).src=”test.jpg”;//这里的document.getElementById(“img”)就是DOM对象;

再说一个例子:就是this,我在写jQuery的时候经常这样写:

this.attr(“src”,”test.jpg”);

可是就是出错。其实this是DOM对象,而

.attr(“src”,”test.jpg”)

是jQuery方法,所以出错了。要解决这个问题就要将DOM对象转换成jQuery对象,例如:

$(this).attr(“src”,”test.jpg”);

DOM对象和jquery对象的转换

DOM对象转成jQuery对象:

对于已经是一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了。

方法:$(DOM对象)

var v=document.getElementById(“v”);  //DOM对象

var $v=$(v);    //jQuery对象

1

2

jQuery对象转成DOM对象:

两种转换方式将一个jQuery对象转换成DOM对象:[index]和.get(index);

(1)jQuery对象是一个数据对象,可以通过[index]的方法,来得到相应的DOM对象。

var $v =$(“#v”) ; //jQuery对象

var v=$v[0];    //DOM对象

alert(v.checked)   //检测这个checkbox是否被选中

1

2

3

(2)jQuery本身提供,通过.get(index)方法,得到相应的DOM对象。

var $v=$(“#v”);  //jQuery对象

var v=$v.get(0);   //DOM对象

alert(v.checked)  //检测这个checkbox是否被选中

温馨提示:
1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:duhaomu@163.com,我们将第一时间处理!
2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。
3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读网站声明

给TA赞赏
共{{data.count}}人
人已赞赏
未整理

吴师傅烧烤技术教程视频,烧烤配料/配方教程

2021-5-12 0:00:00

未整理

苍穹影视V20 全新后台+七彩苍穹视界全开源源码+安装教程

2021-5-14 0:00:00

0 条回复 A文章作者 M管理员
----《》
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索