社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Jquery

jquery数组和jquery对象在技术上有什么区别?

aw crud • 6 年前 • 915 次点击  

这两个,哪一个是正确的?

jQuery('someclass').click(function() {
  alert("I've been clicked!");
});

jQuery('someclass').each().click(function() {
  alert("I've been clicked!");
});

我想知道,我是否对jquery的某些方面是如何工作有一个基本的误解,或者它的每个函数中都内置了许多允许单个元素或元素集合的公差。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/30845
 
915 次点击  
文章 [ 3 ]  |  最新文章 6 年前
madan
Reply   •   1 楼
madan    11 年前
 Var object={};
object.push{id:1,name:{("madan","jeevan","charan")},education:"Hyderabad"};

对象始终只返回一行,

var Arrayobj=[];
Arrayobj.push({id:1,name:"madna"},{id:2,name:"jeevan"},{id:3,name:"charan"});

//Array can return more than one row
jasongetsdown
Reply   •   2 楼
jasongetsdown    14 年前

jquery对象是围绕一个DOM元素数组的包装器。所以“jquery数组” jQuery对象。对象包含页面上与选择器匹配的每个元素。对jquery对象调用的大多数方法都隐式地循环遍历数组中的所有元素,并应用于所有元素。

或者如果只是有很多的宽容 内置于每个函数中 允许单个元素或 元素集合。

这是一种情况。实际上,每个方法都在一个元素上工作,但jquery调用它的次数与它要处理的对象的次数一样多。我相信它确实有用 .each() 在内部这样做,所以如果你理解 () 然后您了解jquery的隐式循环是如何工作的。

有些方法不适用于集合中的每个对象,但在它们的文档中没有这样说。例外是应用于每个元素都不合理的方法。例如,如果你打电话 $('.blah').innerHeight() 您将获得jquery对象中第一个元素的高度 $('.blah.') .

还有一些方法可以获取和设置属性。获取时,它们从第一个元素返回值,设置时,它们应用于所有匹配的元素。例如,如果你打电话 $('.blah').css('font-size') 您可以从 第一 集合中的元素,但如果调用 $('.blah').css('width', 100) 您将设置宽度样式 每一个 jquery集合中的元素。

注意,实际上可以将jquery对象视为数组。只需使用数组表示法来访问元素。

$jQ_obj = $('.classy').find('.refined');
element = $jQ_obj[3];

这将存储具有类的页面上的第四个元素 refined 是元素的子元素, classy . 结果对象 element 是原始DOM对象。

第二点,

由于上述答案已被删除,请确保您了解 () 作品。您需要将要应用于每个匹配元素的函数传递给它,就像事件处理程序一样。所以应该是:

jQuery('.someclass').each(function(i) { //don't forget the dot!
    $(this).click(function() {
        alert("I've been clicked!");
    });
});

在回调中 () 这个 this 关键字是指当前正在循环通过的dom元素,传递给回调的参数是循环索引。 是一个原始的dom元素(把它想成写 $('.someclass')[i] )所以您必须从它创建一个jquery对象来执行调用 .click() 关于它。

Russ Cam
Reply   •   3 楼
Russ Cam    14 年前

第一个是正确的,第二个将失败,因为没有定义回调函数。如果定义了回调函数,并且click事件处理程序应用于中回调内部的每个迭代元素 .each() 然后两者在功能上是相似的。然而, each 调用实际上是多余的,因为jquery命令/方法是 通常地 应用于jquery对象中所有匹配的元素(有某些方法,例如 . val() 这不是,但他们是例外。这是通过内部应用 () :)

jquery对象是具有类似数组的属性的对象;所有匹配的元素都是对象的索引属性,即。

<p>Hello</p><World</p>

$('p'); // is an object { selector: 'p', O: [DOM Element], 1: [DOM Element], ... }

在哪里? [DOM Element] 表示对DOM中与选择器匹配的htmlelement的引用。 类似于数组的优点是它使得对对象执行数组操作非常简单。