如何将指定内容设为URL首个搜索参数?JS代码问题求助
修正方案
你的核心问题是手动截取字符串拼接参数的逻辑完全错误,导致参数格式混乱。应该使用URLSearchParams API来规范处理URL参数,既能保证参数顺序,又能避免手动拼接的错误。
修正后的完整代码:
<script> $(document).ready(function() { document.querySelectorAll(".money").forEach(function(e) { e.addEventListener("click", function() { setTimeout(function() { myfunction(); }, 300); }); }); }); function myfunction() { // 获取当前页面的搜索参数并解析 var currentParams = new URLSearchParams(window.location.search); // 设置produkttyp参数为Tasting,确保它作为首个参数 currentParams.set('produkttyp', 'Tasting'); // 直接设置money参数为你期望的目标值 currentParams.set('money', '0%2C25'); // 构建规范的搜索参数字符串 var newSearchString = currentParams.toString(); // 拼接最终URL var newUrl = "/collections/alle/?" + newSearchString; window.location.href = newUrl; } </script>
关键修改说明:
- 抛弃错误的字符串截取逻辑,改用
URLSearchParams处理参数,自动维护参数格式和顺序 - 通过
set方法确保produkttyp=Tasting被设置(已有该参数则覆盖,无则新增) - 直接指定
money参数的目标值,无需复杂的切片操作 - 自动处理参数编码和拼接,保证URL格式完全符合预期
内容的提问来源于stack exchange,提问作者Marvin Blach
相关产品推荐
相关产品推荐

