【问题标题】:jquery to grab link and text based on classjquery根据类抓取链接和文本
【发布时间】:2010-06-04 01:19:19
【问题描述】:

我正在尝试使用 jquery 来获取整个链接,具体取决于它的类。

这是我的代码:

<ul class="vm_catTigra">
  <li><a class="mainlevel" href="/index.php&amp;category_id=6">AAAAA</a></li>
  <li><a class="mainlevel" href="/index.php&amp;category_id=10">BBBBB</a></li>
  <li><a class="sublevel" href="/index.php&amp;category_id=11">CCCCC</a></li>
  <li><a class="sublevel" href="/index.php&amp;category_id=12">DDDDD</a></li>
  <li><a class="mainlevel" href="/index.php&amp;category_id=13">EEEEE</a></li>
</ul>

这是我希望 jquery 为我抓取的内容(在一个数组中):

<a class="mainlevel" href="/index.php&amp;category_id=6">AAAAA</a>
<a class="mainlevel" href="/index.php&amp;category_id=10">BBBBB</a>
<a class="mainlevel" href="/index.php&amp;category_id=13">EEEEE</a>

我试过用这个:

var mainlevel = [];
jQuery(".mainlevel").each(function() { 
  mainlevel.push(jQuery(this).html());
});

但它正在返回 AAAAA、BBBBB、EEEEE,而不是我所追求的完整代码行。

【问题讨论】:

  • 我一直在寻找我想要实现的目标,我能得到的最好的结果是 AAAAA、BBBBB、EEEEEE。不是数组中的整行。亨斯来这里寻求帮助。

标签: jquery arrays find hyperlink


【解决方案1】:

您可以像这样使用.map().html() 来做到这一点:

var linkArray = $("a.mainlevel").map(function() {
    return $(this).parent().html();
}).get()​​​​​​;

You can view a working demo here,最后的.get() 使您最终获得本机数组对象...这将导致像您的问题一样的 3 字符串数组 :)

【讨论】:

    【解决方案2】:

    像这样:

    $('a.mainlevel')
    

    或者,如果页面上有更多内容,而您只想要该列表中的内容:

    $('.vm_catTigra a.mainlevel')
    

    您应该阅读documentation

    【讨论】:

    • 它是一个数组。 $('a.mainlevel') 返回一个长度为 3 的数组,其中包含所有 3 个锚元素。您可以通过在 $('a.mainlevel')[0], $('a.mainlevel')[1], $('a.mainlevel')[2] 上放置手表来测试它
    • @John - 如果我理解正确,她想要整个链接的 html 字符串,所以是 1x3 字符串数组,而不是元素......不过我可能是错的。
    【解决方案3】:

    您可以在每个 li 中进行迭代并获取 innerhtml,然后将它们存储在一个数组中 像这样。

    var arr = ""; 
    var arr_i = 0;
    $(".mainlevel parent").each(function(){
      arr[arr_i] = $(this).html();
      arr_i++;
    });
    

    希望对你有帮助

    【讨论】:

    • 这不是有效的 JavaScript 语法或 jQuery :)
    • 啊哈..对不起..忘记引号
    • 您的arr 是一个字符串,而不是一个数组,而且.each() 闭包函数已经获得了一个索引,它是传递给函数的第一个参数,您可以简化为:var arr = []; $(".mainlevel").each(function(i){ arr[i] = $(this).html(); }); ,但parent 不是有效的选择器(它将在锚点内查找&lt;parent&gt; 元素),您需要在循环中访问父级,您可以查看我的答案以了解如何执行此操作。
    猜你喜欢
    • 1970-01-01
    • 2019-02-02
    • 2015-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-19
    • 2012-05-12
    相关资源
    最近更新 更多