将属性title与url params进行比较

时间:2012-03-12 06:34:02

标签: jquery

我有一个来自网络的小插件来获取url params:

$.extend({
    getUrlVars: function () {
        var vars = [],
            hash;
        var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
        for (var i = 0; i < hashes.length; i++) {
            hash = hashes[i].split('=');
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
        }
        return vars;
    },
    getUrlVar: function (name) {
        return $.getUrlVars()[name];
    }
});

这从url中提取参数,例如:

http://mysite.com/page?slideshow=video&title=General Overview

我希望将标题参数匹配到与参数“title”具有相同标题的现有链接,并在找到匹配项时执行某些操作,在本例中概述:

<a href="/some-colorbox-page" class="colorbox" title="General Overview">View video</a>


        var isSlideshow = $.getUrlVar('slideshow');
        if (isSlideshow === 'video' && $('a.colorbox', '.video').length) {
            var titleAttr = $('a.colorbox').attr('title');
            var title = $.getUrlVar('title');
            $(window).bind('load', function () {
                if (titleAttr  === title) {
                  $('a.colorbox', '.video').each(function()) {
                     $(this).trigger('click');
                  });
                }
            });
        }

但这不起作用。

很快,当访问者访问链接(http://mysite.com/page?slideshow=video&title=General Overview)时,我想触发一个事件,点击一个与url param“title”的值具有相同标题的元素。

请注意常规和概述之间的空白区域。这件事使查询有点复杂。我无法控制标题属性,但可以控制标题参数。

非常感谢任何帮助。

由于

2 个答案:

答案 0 :(得分:1)

这个怎么样:

$(document).ready(function() {
  var title = $.getUrlVar('title'),
      slideshow = $.getUrlVar('slideshow');
  if (slideshow === 'video') {
    $('a[title="' + title + '"]').click();
  }
});

答案 1 :(得分:1)

试试这个

title = decodeURIComponent(
    (RegExp('title=' + '(.+?)(&|$)').exec(location.search)||[,null])[1]
);
$('a[title='+title).trigger('click');

测试完全正常