前端——$(...)[0].attr is not a function

一、问题分析:
$(…)[0] 返回的是一个dom对象
而 attr() 方法 只能被JQuery对象所使用

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

在这里插入图片描述
二、Dom对象和JQuery对象的区别
https://www.cnblogs.com/xiaomaozi168/p/8615440.html

1、DOM对象
DOM实际上是以面向对象方式描述的文档模型。DOM定义了表示和修改文档所需的对象、这些对象的行为和属性以及这些对象之间的关系。
根据W3C DOM规范,DOM是HTML与XML的应用编程接口(API)。
通过 DOM,可以访问所有的 HTML 元素,连同它们所包含的文本和属性。可以对其中的内容进行修改和删除,同时也可以创建新的元素。
HTML DOM 独立于平台和编程语言。它可被任何编程语言诸如 Java、JavaScript 和 VBScript 使用。
DOM对象,即是我们用传统的方法(javascript)获得的对象。


2、jQuery对象
jquery对象其实是一个javascript的数组
这个数组对象包含125个方法和4个属性
4个属性分别是
jquery 当前的jquery框架版本号
length 指示该数组对象的元素个数
context 一般情况下都是指向HtmlDocument对象
selector 传递进来的选择器内容 如:#yourId或.yourClass等

如果你通过$("#yourId")方法获取jquery对象,
并且你的页面中只有一个id为yourId的元素
那么$("#yourId")[0]就是HtmlElement元素
与document.getElementById(“yourId”)获取的元素是一样的

简单理解,就是jQuery创建的对象
jQuery对象就是通过jQuery包装DOM对象后产生的对象。jQuery对象是jQuery独有的,其可以使用jQuery里的方法,但是不能使用DOM的方法


3、DOM对象和jquery对象的区别
[javascript]
var domObj = document.getElementById(“id”); //DOM对象
var $obj = $("#id"); //jQuery对象;
[javascript]
KaTeX parse error: Expected 'EOF', got '#' at position 3: (“#̲img”).attr(“src…(“#img”)就是获取jQuery对象;
[javascript]
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”);


4、DOM对象和jquery对象的转换

DOM对象转成jQuery对象:

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

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

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

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

var $v =$(“#v”) ; //jQuery对象  
var v=$v[0];    //DOM对象  
alert(v.checked)   //检测这个checkbox是否被选中  

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

var $v=$(“#v”);  //jQuery对象  
var v=$v.get(0);   //DOM对象  
alert(v.checked)  //检测这个checkbox是否被选中
  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值