如何根据href文件名添加rel属性

时间:2013-02-05 08:23:54

标签: jquery

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

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

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

  1. 查找../../technicalarticles中的所有返回的PDF并将class="tips"添加到该链接
  2. 从这些PDF中我需要提取相关的文件名(从最后/到文件扩展名的所有内容)
  3. 将该文件名附加到rel属性
  4. 到目前为止,我的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> 
    

1 个答案:

答案 0 :(得分:0)

window.location是当前页面的网址。您需要使用jQuery方法$(this)的上下文 - 当前proccessed链接。尝试通过.attr()来获取/设置它的属性

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

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