【问题标题】:Get the content of anchors via Jquery通过 Jquery 获取锚点的内容
【发布时间】:2014-10-10 17:23:26
【问题描述】:

我将页面的内容(源代码)存储在一个变量中。现在我需要将一些数字存储在一些锚点内。

<?php
$homepage = file_get_contents('page');
?>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function () {
var html = "<?php echo $homepage; ?>" ;
});
</script>

现在我想过滤存储在 $homepage 中的源代码,以获取一些标签的值。

代码如下:

        <table class="tbl">
        <tr  class="odd" >
            <td ><a href="1181">1181 cm</a></td>
            <td>8/17/2014</td>
        </tr>

        <tr >
            <td ><a href="1182">1182 cm</td>
            <td>8/17/2014</td>
        </tr>

        <tr  class="odd" >
            <td ><a href="1183">1183 cm</a></td>
            <td>8/17/2014</td>
        </tr>

        <tr >
            <td ><a href="1184">1184 cm</a></td>
            <td>8/17/2014</td>
        </tr>

        <tr  class="odd" >
            <td ><a href="1185">1185 cm</a></td>
            <td>8/17/2014</td>
        </tr>

        <tr >
            <td ><a href="1186">1186 cm</a></td>
            <td>8/17/2014</td>
        </tr>
        </table>

我只需要一些帮助,了解更准确的搜索内容,哪些教程。我尝试了互联网上大多数已经预定义的功能,但没有成功。

【问题讨论】:

  • 你看过使用 DOM 解析器吗? simplehtmldom.sourceforge.net
  • 您好@Dan,我设法使用您提供的 DOM 解析器解决了这个问题。我如何将您的评论标记为答案?也非常感谢:)
  • 您不必将评论标记为答案,您可以对评论进行投票并保持原样。
  • 顺便说一句,不要做var html = "&lt;?php echo $homepage; ?&gt;" ; .. 而是做:var html = &lt;?php echo json_encode($homepage); ?&gt;;

标签: jquery html parsing


【解决方案1】:

解析字符串的一种简单方法(简单的意思是不使用正则表达式)是使用 split()。例如:

function getNumbers(homepage)
{
    var numbers = new Array();
    var splitA = homepage.split('<a href="');

    for(var i=1;i<splitA.length;i++)
    {
        var splitB = splitA[i].split('"');
        numbers.push(splitB[0]);
    }

    return numbers;
}

此函数将输出数组中锚标记的数字。但是,它们仍然是字符串,因此您必须将它们转换为整数才能将它们用作实际数字。

【讨论】:

    【解决方案2】:

    你可以在 php 或 Jquery 中使用 正则表达式

    preg_match_all是php的功能,可以帮助你。

    exmaple for JQuery

    【讨论】:

      【解决方案3】:

      这是标签内提取值的表达式

      <a.*>(.*)</a>
      

      <a.*>([0-9]* ?cm)<
      

      您可以在here 中测试此表达式

      【讨论】:

        猜你喜欢
        • 2017-04-03
        • 1970-01-01
        • 2011-07-27
        • 1970-01-01
        • 1970-01-01
        • 2016-08-09
        • 1970-01-01
        • 1970-01-01
        • 2021-04-26
        相关资源
        最近更新 更多