代码之家  ›  专栏  ›  技术社区  ›  user9178946

如何使用jQuery动态获取页面URL的一段?

  •  -1
  • user9178946  · 技术社区  · 8 年前

    用户可以在任何页面上留下评论,并粘贴到任何IMDb链接中。

    我已经像这样抓取和操纵这些链接:

    jQuery('[href*="imdb.com/title"]').addClass('imdb-link').after(' <span class="imdbRatingPlugin" data-title="" data-style="p4"><img src="logo.png" alt="IMDb" style="max-height:16px" /> </span>');
    

    现在,我一直在努力解决的问题是如何将IMDb电影标题id复制到 data-title="" .

    它必须在每个链接的基础上动态完成,就像我已经瞄准了链接一样。

    下面是一个真实IMDb链接的示例:

    http://www.imdb.com/title/tt0068646/

    只是 tt0068646 部分需要像这样复制 data-title="tt0068646" . 同样,动态地,因为用户可以输入任何链接,有几十万种可能。

    regex是一个选项 /imdb\.com\/title\/(\w+)/ . 但是,如何在这种情况下实现这一点?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Jebus905    8 年前

    您可能需要迭代每个链接,而不是试图一次更改所有链接。

    jQuery('[href*="imdb.com/title"]').each(function() {
        var id = /imdb\.com\/title\/(\w+)/.exec(jQuery(this).prop("href"));
        $(this)
            .addClass('imdb-link')
            .after(' <span class="imdbRatingPlugin" data-title="' + id[1] + '" data-style="p4"><img src="logo.png" alt="IMDb" style="max-height:16px" /> </span>');
    });
    

    以这种方式进行比较慢,但它允许您访问单个元素的属性。

    或者,您可能需要使用 jQuery(this).attr("href")