将内容加载到jQuery中的特定div中

时间:2016-12-25 16:55:07

标签: jquery

我有这个元素:

<div data-load-module="list-users"></div>

这个JS加载特定的模块:

if($('[data-load-module]').length) {
    var datas = $('[data-load-module]').attr('data-load-module');

    var url = 'assets/php/ajax/' + datas + '.php';

    $(this).load(url, function() {
        ...
    });
}

$(this).load()行未加载我的模块。

我不想添加id或其他class

如何指定我希望将内容加载到this div?

感谢。

2 个答案:

答案 0 :(得分:1)

在您的代码中this通常不引用div元素,它可能引用window对象。

如果您想将内容加载到同一个div中,请将选择器缓存到变量中并使用它。

var $div = $('[data-load-module]');
if($div.length) {
    var datas = $div.attr('data-load-module');    
    var url = 'assets/php/ajax/' + datas + '.php';    
    $div.load(url);
}

如果有多个div,则使用each()方法迭代它们并在回调中使用this来引用该元素。

$('[data-load-module]').each(function(){
    var datas = $(this).attr('data-load-module');    
    var url = 'assets/php/ajax/' + datas + '.php';    
    $(this).load(url);
})

答案 1 :(得分:0)

$('.data-load-module').each(function(i) {
    $(this).load(...)
});

提供.data-load-module是您的课程,然后您可以通过这种方式引用此课程中的di​​v。否则this不会引用代码中的任何内容。