2014-01-23 4 views
0

Я пытаюсь использовать ajax для захвата элемента с определенным классом из другого файла с помощью jQuery, проанализировать html, чтобы получить некоторые данные из него и поместить его в объект , а затем отобразить данные в другой разметке, чем исходный HTML в #content, элемент на главной странице ..использовать jQuery .get(), чтобы захватить определенный элемент

При использовании нагрузки(), можно настроить таргетинг на определенный класс:

$("#content").load("article.html .cover", function(){ 
    console.log("load() success"); 
}); 

Это работает , но я не хочу, чтобы html из article.html был помещен в #content, поэтому я попытался использовать ajax(), чтобы я мог манипулировать html перед его отображением в обратном вызове:

$.ajax({ 
    url: "article.html .cover" 
}).done(function(){ 
console.log("ajax() success"); 
}); 

но это приводит к ошибке 404. Результаты get() такие же, как ajax().

$.get("article.html .cover", function(){ 
    console.log("get() success"); 
}); 

Как я могу использовать get() для таргетинга на этот конкретный элемент?

+0

Извлечь внутри обратного вызова 'done()', где у вас есть доступ к HTML – Johan

ответ

3

Вы можете попробовать это:

$.get("article.html", function(html){ 
    var cover = $(html).find('.cover'); 
}); 

Там нет никакой магии в $.get, как это, кажется, в $.load найти определенный элемент на странице. Вы можете получить любой тип файла с $.get, и нет смысла добавлять селектор при извлечении json-файла, например.

Редактировать

Если вы заботитесь о производительности, по-видимому, $.get использует кэш по умолчанию (link).

Вы можете (должны?) Также возвращать только, что необходимо, если ваш серверный код позволяет это. Возможно, запрашивая articlecover.html insted от article.html.

+0

просто из-за любопытства, почему бы '$ .get (" article.html .cover ")' возвращать 404? – Phil

+0

Потому что это не действительный URL. – Johnny5

+0

О, хорошо, я предполагаю, что ищет URL-адрес, а не строку запроса, lol thank you – Phil

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