Python社区  »  Jquery

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

aw crud • 4 月前 • 100 次点击  

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

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
 
100 次点击  
分享到微博
文章 [ 3 ]  |  最新文章 4 月前
madan
Reply   •   1 楼
madan    5 年前
 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    9 年前

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    9 年前

第一个是正确的,第二个将失败,因为没有定义回调函数。如果定义了回调函数,并且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的引用。 类似于数组的优点是它使得对对象执行数组操作非常简单。