首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JS / Jquery .load和.length

JS / Jquery .load和.length
EN

Stack Overflow用户
提问于 2014-01-02 13:52:00
回答 3查看 304关注 0票数 2

我对Jquery/javascript很陌生,我几乎所有的经验都是在PHP方面的。我现在发现事情是如何排序的重要性:)

因此,我试图使用<div>将一些#text-container加载到容器#text-container中,然后对它们进行计数。我对jquery的load函数的理解是,第二个参数是一个回调函数,只有在加载了所有数据之后才能运行。但是,即使容器中有4-5个div,也总是报告为0。我漏掉了什么吗?

代码语言:javascript
复制
<div>1</div><div>2</div>

代码:

代码语言:javascript
复制
$("#text-container").load("1.txt",alert($("#text-container div").length));

这只是一个例子,但我需要用这个数字在其他函数中做一大堆数学。因此,如果我调用这些而不是警报,并试图在其中运行.length,它们都会得到0,而我的数学不工作:

想法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-01-02 14:03:00

答案

代码语言:javascript
复制
$("#text-container").load('1.txt',function(){
    alert($("#text-container div").length);
}); 

解释

首先,让我们讨论回调函数传递,正确的语法:

代码语言:javascript
复制
$(selector).load(source,callback);

假设您有一个名为gg的函数,我们希望使用它来代替回调

代码语言:javascript
复制
function gg(){
    //some code for task 1
}

现在让我们使用它作为回调。

(采用错误的方式)

代码语言:javascript
复制
$(selector).load(source,gg()); 

注意:当您使用圆括号()__编写函数时,函数同时被调用,因此只需传递标识符即可。

(是正确的方式,)

代码语言:javascript
复制
$(selector).load(source,gg); 

或使用匿名函数

代码语言:javascript
复制
$(selector).load(source,function(){
    // some code for task 1
}); 

注意:与只为回调定义函数不同,如果您不再使用它,最好使用匿名函数。

票数 0
EN

Stack Overflow用户

发布于 2014-01-02 13:53:54

您需要一个匿名函数来进行回调。

代码语言:javascript
复制
$("#text-container").load("1.txt", function(data) {
    alert( $("#text-container div").length )
});

这只是一个例子,但我需要用这个数字在其他函数中做一大堆数学。

请注意,它是异步的,所以在实际存在之前不能使用它,为什么您的.txt文件包含DIV元素对我来说似乎是错误的文件扩展名呢?

票数 2
EN

Stack Overflow用户

发布于 2014-01-02 14:01:40

你不是在做你想做的事。将结果的警报()作为参数传递。

$("#text-container").load("1.txt",alert($("#text-container div").length));

相当于:

代码语言:javascript
复制
var data = alert($("#text-container div").length); // data = 0
$("#text-container").load("1.txt", data);

您想要传递一个函数作为参数:

代码语言:javascript
复制
var callback = function() {
  alert($("#text-container div").length);
}
$("#text-container").load("1.txt", callback);

或更短:

代码语言:javascript
复制
$("#text-container").load("1.txt", function() {
  alert($("#text-container div").length);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20884496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档