2016-12-25 5 views
2

У меня есть этот элемент:Загрузка содержимого в конкретные DIV в 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.

Как я могу указать, что я хочу, чтобы содержимое загружалось в div this?

Спасибо.

+0

Я думаю, что на 'div' я упомянул? –

+0

'$ (this)' не относится к div, это окно –

ответ

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); 
} 

В случае, если имеется несколько дивы затем использовать each() метод итерации над ними и внутри использования обратного вызова this для обозначения элемента.

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

Предоставление .data-load-module ваш класс, то вы можете ссылаться на дивы из этого класса этот путь. В противном случае this не ссылается ни на что в вашем коде.

Смежные вопросы