我试图提取链接中包含的单个$ _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'
任何想法发生了什么?我无法弄清楚我做错了什么..
答案 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”。
不要忘记拆分网址的非查询部分。