如何在没有回调的情况下获取有关元素的信息

时间:2012-09-08 10:44:17

标签: javascript jquery

我有不同的容器可以在不同的事件上重新加载。我有很多,所以我给每个容器分类load

这就是他们所有人的样子:

<div class="load" data-href="facebook">
</div>

我还有一个由各种动作触发的功能:

function get_timing(time)
{
   $(".load").load("myfolder/mod_"+$(this).attr("data-href")+".php?action="+time, function() { 
       alert('Here I could use this:' + $(this).attr("data-href"));
   }
}

我知道在上面的例子中我不能使用this,我只能在回调中使用它。我的问题是:如何使用对象的属性来定义加载函数的路径。

这就是它的工作原理:

function get_timing(time)
{
   $(".load").fadeIn(10, function()
       {
           $(this).load("myfolder/mod_"+$(this).attr("data-href")+".php?action="+time, function() { 
           alert('loaded');
       }
   }
}

有没有办法在没有asynchronus函数的情况下执行此操作(在本例中为.fadIn))

希望我能解释一下我的问题 - 提前谢谢你!

2 个答案:

答案 0 :(得分:2)

如果你想要上课,你可以通过索引来引用它们:

var element = $(".load").get(0);
console.log($(element).attr("data-href"));

请注意,您必须通过element重新jQueryfy $(element)才能访问attr()

如果您想要读出给定班级的所有元素,我建议$.each()

//$.each($(".load"), function(index, value){
$(".load").each(function(index, value){
    console.log( $(value).attr("data-href"));   
});

答案 1 :(得分:0)

尝试为您的容器指定一个ID:

<div class="load" data-href="facebook" id="facebookcontainer">
</div>

然后,您可以在javascript中使用$("#facebookcontainer")而不是使用它。