javascript - 将存储在 Javascript 对象中的参数传递给 jQuery .load 页面

标签 javascript jquery

我正在使用 Ben Alman 的 jQuery BBQ 获取当前页面的查询字符串和哈希值,并使用以下代码将它们存储在 Javascript 对象中:

var params = $.deparam.querystring();
var paramsHash = $.deparam.fragment();

这些都设置正确;如果我 console.log 它们,我会得到返回值:

distance         "0.1"
floorFrom        "0"
floorTo          "1000"
floorUnit        "1"
ipp              "10"
locationName     "London"
location_val     "LK||001"
tab              "3"

现在我要做的是使用 jQuery .load 调用将这些值传递到页面。

目前我正在使用下面的代码

$('#result').load('mypage.php', { querystringData : params, hashData : paramsHash }, function()
{
...
}

显然这是将数据传递给 mypage.php 为:querystringData[locationName]=London

我需要它作为 locationName=London 等传递,但不确定实现此目的的最佳方法。

更新、添加说明、对下面的答案发表评论的副本

我想摆脱的是在 .load 调用中使用 querystringData 和 hashData。如果我要全部写出来,它看起来像这样:

$('#result').load('mypage.php', { distance : '0.1', floorFrom: '0', floorTo : '1000', floorUnit : '1', ipp : '10', locationName : 'London', location_val : 'LK||001', tab : '3' }

我不知道如何从对象中获取值并将它们显示在 .load 调用中。另一个问题是我将添加和删除查询字符串值,所以我不认为这是我可以硬编码的东西。

最佳答案

这是未经测试的,但我认为它应该有效,因为我对 BBQ 的了解有限:

var params = $.deparam.querystring();
var paramsHash = $.deparam.fragment();

var data = $.extend({}, params, paramsHash);

$('#result').load('mypage.php', data, function()
{
...
}

我相信 paramsparamsHash 已经是正确的格式,只需要合并它们。这可能不适用于 hash,因为我不熟悉 BBQ。

http://api.jquery.com/jQuery.extend/

关于javascript - 将存储在 Javascript 对象中的参数传递给 jQuery .load 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6155947/

相关文章:

javascript - 扩展程序可以关闭选项卡吗?

javascript - 模态不显示 Reactjs 使用 Hook

javascript - Highcharts 日期不工作

javascript - 仅在 iframe 上关闭 javascript

javascript - JQuery 没有检测到动画的 DIV id 的变化

JavaScript 使用递归添加两个链表值

javascript - 从文本创建链接

javascript - 将不存在的日期数据添加到 JSON

jquery - 显示来自网络服务的数据

javascript - 动画完成后如何添加类?