0

我有一个 ASP 搜索脚本,它主要返回 PDF 和其他一些文档的结果。在该站点的大部分内容中,我使用了一个名为线索提示(由 Karl Swedberg 编写)的 jQuery 插件,当用户将鼠标悬停在某些链接上时,它会创建一个工具提示。这些链接的内容是由 ajax 从链接的 rel 属性中定义的 html 文件中提取的:

<a href="../../example.pdf" class="tips" rel="../../tooltips/example.html>

当用户进行搜索时,我希望能够将这些工具提示从某个特定位置动态添加到 PDF - ../../technicalarticles. 所以我需要:

  1. 查找所有返回的 PDF../../technicalarticles并添加class="tips"到链接中
  2. 我需要从这些 PDF 中提取相关文件名(从最后一个/文件到文件扩展名的所有内容)
  3. 将该文件名附加到rel属性

到目前为止,以下是我的 jQuery 代码:

<script type="text/javascript">
$(".results a").each(function() {
    if (window.location.href.indexOf("technicalarticles") >= 0)
    // if statement to find the right pdfs
    { 
        var firstpos = location.href.lastIndexOf('/')+1; // finds the position of the last / and adds 1
        var lastpos = location.href.lastIndexOf('.')-1; // finds the position of the last . and subtracts 1
        var filename = location.href.substr(firstpos, lastpos); // filename should now have eveything from the last / to the file extension

        $(this).attr('rel', ".data/tooltips/" + filename + ".html"); // adds the rel string to the link
        $(this).addClass('tips'); // adds the class 'tips' to the link
    }
} );
</script> 
4

1 回答 1

0

window.location 是当前页面的 url。您需要使用 jQuery 方法 $(this) 的上下文 - 当前已处理的链接。尝试通过 .attr() 像这样获取/设置它的属性

var target = $(this);
someUrlPath = /here get part of url/
target.attr('rel', target.attr('rel') + someUrlPath);

但我认为更好的做法是尽可能使用 ASP 填充 rel 参数。

于 2013-02-05T08:39:24.157 回答