URLSearchParams: delete() 方法

Baseline 广泛可用 *

此功能已成熟,并可在许多设备和浏览器版本上使用。自 2020 年 9 月起,所有浏览器均已提供此功能。

* 此特性的某些部分可能存在不同级别的支持。

注意:此功能在 Web Workers 中可用。

URLSearchParams 接口的 delete() 方法会从所有搜索参数列表中删除指定的参数及其关联的值。

参数名称和可选的值用于匹配参数。如果只指定了参数名称,则会删除所有名称匹配的搜索参数及其关联的值。如果同时指定了参数名称和值,则会删除所有同时匹配参数名称和值的搜索参数。

语法

js
delete(name)
delete(name, value)

参数

name

要删除的参数的名称。

value 可选

参数必须匹配的值,以及给定的名称,才能被删除。

返回值

无(undefined)。

示例

删除具有指定名称的所有参数

此示例演示了如何删除具有特定名称的所有查询参数(以及值)。

js
const url = new URL("https://example.com?foo=1&bar=2&foo=3");
const params = new URLSearchParams(url.search);
console.log(`Query string (before):\t ${params}`);
params.delete("foo");
console.log(`Query string (after):\t ${params}`);

下面的日志显示,所有名为 foo 的参数都已被删除。

Query string (before):  foo=1&bar=2&foo=3
Query string (after):   bar=2

删除具有指定名称和值的参数

此示例演示了如何删除与特定名称和值匹配的查询参数。

js
const url = new URL("https://example.com?foo=1&bar=2&foo=3&foo=1");
const params = new URLSearchParams(url.search);
console.log(`Query string (before):\t ${params}`);
params.delete("foo", "1");
console.log(`Query string (after):\t ${params}`);

应删除所有同时匹配参数 namevalue 的参数(如上所示,没有理由指定两个具有相同名称和值的参数)。

Query string (before):  foo=1&bar=2&foo=3&foo=1
Query string (after):   bar=2&foo=3

如果您的浏览器支持 value 选项,则“after”字符串应为 bar=2&foo=3。否则,结果将与上一个示例相同(bar=2)。

规范

规范
URL
# dom-urlsearchparams-delete

浏览器兼容性

另见