Jquery .each方法

时间:2011-05-19 05:15:45

标签: php jquery each

学习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 个答案:

答案 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,但你还没有真正使用它。