我希望能够获取变量view_data_id的值并将其存储在另一个名为view_data_id_fk的变量中。
最后一行代码似乎无法正常工作,所以我想知道如何才能做到这一点?
var view_data_id = val['view_data_id'];
// How to obtain the value of view_data_id?
<td><a href="datamapmain.php?view_data_id='+view_data_id+'"
class="link">Link</a></td>
//Will be passed on to ajax file
view_data_id_fk:$('.link').val();
答案 0 :(得分:2)
您可以使用jQuery和attr(..)
方法(或仅使用标准JavaScript)和正则表达式来获取值:
jQuery:
var q = $('.link').attr('href').match(new RegExp('[?&]view_data_id=([^&#]*)'));
var view_data_id_fk = q ? q[1] : '';
标准JavaScript:
var q = document.querySelector('.link').href.match(new RegExp('[?&]view_data_id=([^&#]*)'));
var view_data_id_fk = q ? q[1] : '';
[已编辑,感谢Alexei Levenkov]
使用URLSearchParams
API是一种标准的方法,但是它对浏览器的支持有限(caniuse,MDN):
var q = new URLSearchParams(document.querySelector('.link').href).get('view_data_id');
var view_data_id_fk = q || '';
答案 1 :(得分:0)
创建如下所示的可重用函数
function getUrlParam(url,name){
var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
var results = regex.exec(url);
return results === null ? '' :
decodeURIComponent(results[1]).replace(/\+/g,'');
}
使用JQuery var url = $('.link').attr('href')
var view_data_id_fk = getUrlParam(url, 'view_data_id');