【发布时间】:2022-01-10 06:22:26
【问题描述】:
我正在尝试使用URLSearchParams 操纵我的网址。但是 URLSearchParams.delete() 需要参数的名称。如果我有同名的参数,(从我在 chrome 中测试的内容)它将删除所有具有该名称的参数。有没有办法同时按名称和值删除?
我的查询如下所示:
?color[]=Black&color[]=Green&material[]=Steel
所以当我调用.delete("color[]") 时,它会删除两个color[]= 参数,但是如果我只想删除一个特定的参数怎么办?
重复名称的原因是后端 (PHP) 正在利用 this functionallity 将参数自动解析为数组...这需要上述语法。
大图是-我正在尝试从这个待定数组中添加/删除“过滤器”。此外,某些过滤器类别可能具有匹配的值,因此我也不希望按值删除。我愿意考虑一种全新的方法……只是尝试以最不老套的方式来做。
-- 编辑--
对于任何 Laravel 用户,我建议不要使用无索引语法。只需使用color[0]=、color[1]= 等。我没有意识到 laravel 支持这两种语法。
【问题讨论】:
-
“
delete()期望参数的名称”是什么意思?delete()函数从何而来? -
寻求代码帮助的问题必须包括在问题本身中重现它所需的最短代码,最好是在Stack Snippet 中。请参阅如何创建 Minimal, Reproducible Example。在您的问题中显示预期结果并引用您遇到的任何(确切)错误也非常有帮助。您应该展示自己为解决这个问题所做的任何研究。
-
@code 是 URLSearchParams 接口的方法
-
有没有办法同时按名称和值删除 我也不想按值删除,比较混乱
-
在 Firefox 上运行的测试 jsfiddle.net/9h82gjwx 显示,
delete()删除了名称的所有参数(就像 documented 一样)。您能否提供代码(和环境,例如浏览器)来证明您的问题。
标签: javascript php url