JQuery. Каждый метод - PullRequest
0 голосов
/ 19 мая 2011

изучение Jquery и интеграция с PHP - добираемся, но есть еще одна проблема в некотором коде, над которым я работаю.

У меня есть HTML в строке, пытаясь получить html в тегах, может быть несколькоэлементы в строке HTML, поэтому стараемся использовать каждый.Моя функция работала без каждой из них, ниже приведена моя каждая интеграция (в настоящее время ничего не возвращается):

<?php 
   $info = '<li><strong><a href="http://www.mysite.com/test.html" title="Some stuff">I want this text</a></strong></li><li><strong><a href="http://www.mysite.com/test2.html" title="Some stuff">I want this text too</a></strong></li>';
   $info = json_encode($info);
?>

<script type="text/javascript">
$(document).ready(function () {

    $("a", $( < ? php echo $info; ? > )).each(

    function () {
        alert($(this).html());
    });
};

Этот код ниже работает, но возвращает только первый элемент в HTML:

<?php
   $info = '<li><strong><a href="http://www.mysite.com/test.html" title="Some stuff">I want this text</a></strong></li>';
   $info = json_encode($info);
?>

<script type="text/javascript">
$(document).ready(function () {
    var output = $("a", $( < ? php echo $info; ? > )).html();
    var link = $("a", $( < ? php echo $info; ? > )).attr("href");
    alert(output);
    alert(link);
});
</script>

Ответы [ 2 ]

1 голос
/ 19 мая 2011

Это описание и рабочий пример использования .each() LINK Вы можете попробовать это в качестве примера

$("a").each(function(index){alert($(this).html()});
0 голосов
/ 19 мая 2011

Ваш код не работает, потому что есть несколько синтаксических проблем.

Сначала измените

< ? php echo $info; ? >

до

<?php echo $info; ?>

PHP не любит пробелы, а открывающие и закрывающие теги должны появляться без пробелов.

Во-вторых, правильно закройте функцию ready и тег script. Вместо

};

использование

});
</script>

Почему вы кодируете кусок XML с помощью JSON? Это не имеет никакого смысла. Оба являются способами кодирования данных. HTML тоже XML, кстати. Вы можете напрямую ссылаться на переменную $info, поскольку PHP сначала все обработает на сервере.

<?php 
   $info = '<li><strong><a href="http://www.mysite.com/test.html" title="Some stuff">I want this text</a></strong></li>';
?>
<script type="text/javascript">
$(document).ready(function() {

    $("a", $("<?php echo $info; ?>")).each(
        function () {
            alert($(this).html());
        }
    );
});

Или просто полностью удалите временную переменную. Это делает чтение удобным, но это по сути то, что делает PHP.

$("a", $("<?php echo '<li><strong><a href="http://www.mysite.com/test.html" title="Some stuff">I want this text</a></strong></li>'; ?>")).each(

Или, чтобы сделать его еще проще, поскольку у вас уже есть HTML, просто включите его как часть страницы и, возможно, присвойте ему идентификатор, чтобы упростить ссылки на него с помощью jQuery.

<li id="myList">
    <strong><a href="http://www.mysite.com/test.html" title="Some stuff">I want this text</a></strong>
</li>

<script type="text/javascript">
$(document).ready(function() {
    $("a", "#myList").each(function() {
        alert($(this).html());
    });
});
</script>

Последний пример полностью избавляет от PHP, но вы все равно его не используете.

...