Ваш код не работает, потому что есть несколько синтаксических проблем.
Сначала измените
< ? 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, но вы все равно его не используете.