как получить содержимое вложенного div с помощью jQuery - PullRequest
0 голосов
/ 03 декабря 2009

Итак, у меня есть вложенная структура div, и я хотел бы получить содержимое второго уровня. Как я должен сделать это с jQuery .load? Следующее работает только с простыми div (не вложенными) ...

 .load("https://remote-site.com/blah.html #div_1", function() { }

Хорошо, все это:

<html>
<head>
<title>AJAX Checker </title>
<link rel="stylesheet" href="style.css" type="text/css" />
<script src="jquery.js" language="javascript" type="text/javascript"></script>
<script type="text/javascript">

$(document).ready(function() {
  $("#loadData").click(function() {
    $(this).text("...One Moment Please...");
    $("#container").append('<div id="favoriteMovies"></div>')
                   .children("#favoriteMovies").hide()
                   .load("https://remote-site/blah.html", function() {
                     var elem = $(this).find('#subject');
                     $("#loadData").remove();
                     $("#favoriteMovies").slideDown("slow");
                   });
   return false;
   });
});

</script>
</head>
<body>
<div id="container">
 <a href="#" id="loadData">Click</a>
</div>
</body>
</html>

Ответы [ 2 ]

3 голосов
/ 03 декабря 2009

Предполагая, что div 2-го уровня имеет и id

.load("https://yoursite.com/blah.html #div_1 #2ndlevel_div", function() { }

В противном случае измените селектор соответственно, как обычно (например, первый дочерний элемент #div_1)

.load("https://yoursite.com/blah.html #div_1 > div:first", function() { }

Кстати: обратите внимание, это будет работать только для вашей собственной страницы (междоменные запросы не поддерживаются с ajax

1 голос
/ 03 декабря 2009

Во-первых, загрузка данных с помощью AJAX будет работать, только если страница находится в том же домене. «Удаленный сайт» означает, что вы пытаетесь получить материал из другого домена.

Чтобы обойти это, вы можете использовать серверный скрипт, который выбирает контент и возвращает его. В PHP вы хотели бы использовать функции cURL (здесь есть множество вопросов о подобных вещах, просто выполните поиск на выбранном вами языке).

// `getpage.php` would be your script that fetches the URL provided
.load("http://yoursite.com/getpage.php?url=https://remote-site.com/blah.html #div_1", function() {
    // `$(this)` should contain the div you selected
    $('#loadData').html( $(this) ); // replace `loadData` with whatever div you wanna store the content in
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...