学习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>
答案 0 :(得分:1)
这是如何使用.each()
LINK的说明和工作示例
您可以尝试这个作为示例
$("a").each(function(index){alert($(this).html()});
答案 1 :(得分:0)
您的代码无效,因为存在一些语法问题。
首先,改变
< ? php echo $info; ? >
到
<?php echo $info; ?>
PHP不喜欢空格,并且开始和结束标记必须不带空格。
其次,正确关闭ready函数和脚本标记。而不是
};
使用,
});
</script>
为什么用JSON编码一段XML?这根本没有意义。两者都是编码数据的方法。 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,只需将它作为页面的一部分包含在内,并且可以给它一个ID,以便用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,但你还没有真正使用它。