0

リンクに含まれる単一の $_GET 変数の値を抽出しようとしています。

したがって、html は次のようになります。

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

そして、JSを使用してこのURLから「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

4 に答える 4

0

val の代わりに attr を使用するように指示する多くの回答 - クエリ引数だけを持つように文字列を十分に分割していないため、戻り値はまだ定義されていません。「p」===「http://example.com/?p」かどうかを確認することになります。

URL の非クエリ部分を分割することを忘れないでください。

于 2012-07-18T20:47:02.363 に答える
0

PHPは使えますか?もしそうなら、それは次のように簡単です

<script>
 var val = "<?php print $_GET['p']; ?>
</script>
于 2012-07-18T20:39:55.807 に答える
0

私は$(this).attr('href')あなたの問題を解決すると思いますが、次のようなものを検討してください:

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

 if (params.Something) {
     // ... it's set.
 }
于 2012-07-18T20:32:01.463 に答える
0

試してください - http://jsfiddle.net/6W4Rw/

$("a").on("click", function(e) {
    e.preventDefault();
    alert( $(this).attr("href").split("=")[1] );
});
于 2012-07-18T20:32:17.640 に答える