普通Javascript等效于jQuery.param()

Nei*_*eil 15 javascript ajax jquery params google-apps-script

jQuery.param()接受一组键值对,并将其转换为一个字符串,您可以将其用作HTML请求中的查询字符串.例如,

a = {
      userid:1,
      gender:male
    }
Run Code Online (Sandbox Code Playgroud)

会转换成

userid=1&gender=male
Run Code Online (Sandbox Code Playgroud)

我正在尝试在Google Apps脚本中调用服务器端的外部API,这需要很长的查询字符串.我会使用jQuery param函数,但似乎没有简单的方法在Google的服务器端使用jQuery.

你能给我一些实现相同功能的简单javascript代码吗?

它的jQuery实现在这里,但我不想冒险跳过任何关键细节,只需复制它并删除处理'传统'的代码.

Ama*_*nut 26

您也可以使用纯JavaScript执行此操作,但您必须编写更多代码行.试试这个:

用于测试的HTML代码:

<p id="test"></p>
Run Code Online (Sandbox Code Playgroud)

要被触发的JavaScript:

a = {
      userid:1,
      gender: "male",
    }

url = Object.keys(a).map(function(k) {
    return encodeURIComponent(k) + '=' + encodeURIComponent(a[k])
}).join('&')

document.getElementById("test").innerHTML=url
Run Code Online (Sandbox Code Playgroud)

输出是这样的:

userid=1&gender=male
Run Code Online (Sandbox Code Playgroud)

您可以在JSFIDDLE.NET上尝试这个,它可以工作,这里是链接:http://jsfiddle.net/ert93wbp/

  • 嵌套键怎么样?你需要递归或展平对象. (6认同)