使用带有元素属性的.load

时间:2014-02-06 20:10:24

标签: javascript jquery

使用jQuery 2.0.3,我在尝试做类似的事情时遇到了问题:

$("[data-load]").load($(this).attr("data-load"));"

相关的HTML如下所示:<div data-load="markup/fonts.html"></div>

我可以从属性中检索正确的值,但我不能让它加载任何东西。更重要的是,如果我尝试$("[data-load]").load($(this).attr("data-load").toString());,我会得到Error: Unable to get value of the property 'toString': object is null or undefined

任何线索?

编辑:抱歉,语法正确无误。在这里输入时错了。

决议:Jeez,我是个傻瓜。我在寻找什么:

$("[data-load]").each(function (index) {
    $(this).load($(this).attr("data-load"));
});

3 个答案:

答案 0 :(得分:1)

为什么$("[data-load]) - 您又忘了一个"

答案 1 :(得分:1)

决议:Jeez,我是个傻瓜。我在寻找什么:

$("[data-load]").each(function (index) {
    $(this).load($(this).attr("data-load"));
});

答案 2 :(得分:0)

如果您想要所有具有data-load属性的元素,无论其值如何,您都拥有正确的选择器:

$("[data-load]")

然而,问题是当你调用.load()函数时;你需要一种方法来引用一个特定的元素。我建议使用.each()

$('[data-load]').each(function() {
    $(this).load($(this).attr('data-load'));
});

遍历与选择器匹配的每个元素,单独调用它们上的.load()并将该特定元素的<{1}}属性值传递给它。