使用JS / Jquery从URL中提取GET数据

时间:2012-07-18 20:26:31

标签: javascript jquery html

我试图提取链接中包含的单个$ _GET变量的值。

所以html看起来像:

<div class="news_item"><a href="http://example.com/?p=51">Title</a></div>

我正在尝试使用JS从这个网址中删除'51':

<script>
        function GetURLParameter(sParam, URL) {
            var sURLVariables = URL.split('&');
            for (var i = 0; i < sURLVariables.length; i++) 
            {
                var sParameterName = sURLVariables[i].split('=');
                if (sParameterName[0] == sParam) 
                {
                    return sParameterName[1];
                }
            }
         };

        $('.news_item a').click(function(e) {
            e.preventDefault();
            var URL = $(this).val('href');
            var sParam = 'p';
            var ID = GetURLParameter(sParam, URL);
            alert(ID);
        });


    </script>

当我点击链接时,我收到以下错误:Uncaught TypeError: Object [object Object] has no method 'split'任何想法发生了什么?我无法弄清楚我做错了什么..

4 个答案:

答案 0 :(得分:0)

我认为$(this).attr('href')会解决您的问题,但请考虑以下内容:

 var params = [];
 $(this).attr('href').replace(/[?&]+([^=&]+)=([^&]*)/gi, function(match, key, value) {
    params[key] = value;
 });

 if (params.Something) {
     // ... it's set.
 }

答案 1 :(得分:0)

尝试 - http://jsfiddle.net/6W4Rw/

$("a").on("click", function(e) {
    e.preventDefault();
    alert( $(this).attr("href").split("=")[1] );
});

答案 2 :(得分:0)

你能用PHP吗?如果是这样,它就像

一样简单
<script>
 var val = "<?php print $_GET['p']; ?>
</script>

答案 3 :(得分:0)

大量的答案告诉你使用attr而不是val - 返回值仍未定义,因为你没有充分拆分你的字符串只有查询参数。您最终会检查“p”===“http://example.com/?p”。

不要忘记拆分网址的非查询部分。