修复JS代码:将复选框中的多个值附加到url

保尔瓦雅克

我发现此代码用选中的复选框值替换了链接文本(=“显示”)。现在,我正在寻找将链接的URL本身添加/删除选中/未选中的值的代码。

function calculate() {
  var arr = $.map($('input:checkbox:checked'), function(e, i) {
    return +e.value;
  });
  $("[href$='feature=']").text('the checked values are: ' + arr.join(','));
}

calculate();
$('div').delegate('input:checkbox', 'click', calculate);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
  <input type="checkbox" name="options[]" value="Teamsport" />
  <input type="checkbox" name="options[]" value="Individual sport" />
</div>

<div><a href="/best/?price=123&amp;feature=">Show</a></div>

<a href="/best/?price=123&amp;feature=Teamsport">Show</a>

伙计们,非常感谢您的帮助!

路易丝·帕特里斯·贝塞特

我会使用.each()循环而不是$.map()...

另外,由于您希望更改href...并且它与属性选择器一起使用,因此我将在href更改之前将元素保存在变量中href“基本”值本身相同。由于第二次点击,href不会以结尾feature=

因此,这是一个工作示例:

function calculate() {
  var arr = [];
  $('input:checkbox:checked').each(function(i,v) {
    arr.push(v.value);
  });
  
  // The array in console
  console.log(arr);
  
  // Join it has a string
  var arr_string = arr.join(",");  

  // Use the string in the link's text AND the href
  link
    .text('the checked values are: ' + arr_string)
    .attr('href', link_href_base + arr_string);
  
  // The link's href in console
  console.log(link.attr("href"));
}

// Variables that won't change
var link = $("[href$='feature=']");
var link_href_base = link.attr("href");

calculate();
$('div').delegate('input:checkbox', 'click', calculate);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
  <input type="checkbox" name="options[]" value="Teamsport" />
  <input type="checkbox" name="options[]" value="Individual sport" />
</div>

<div><a href="/best/?price=123&amp;feature=">Show</a></div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从复选框中获取多个值

如何通过单击一个复选框将多个复选框值附加到文本区域

单击复选框将复选框的值添加到数组

将表单的复选框标签附加到<p>元素中

使用Java将多个复选框值插入Firestore

将值从复选框添加/追加到隐藏字段

将输入文本添加到Vue JS中复选框的值

如何将多个复选框中的数据价格值相加到现有功能?

如何使用JQuery将多个复选框的值传递给URL

将复选框的值添加到PHP结果中?

将复选框数组值添加到MySQL数据库的几行中

如何将复选框附加到我的Ajax响应中

如何将复选框值附加到它所属的特定类别

Swift Xcode使用复选框子类将操作附加到复选框

VBA复选框附加代码

将多个复选框值插入mysql中的单独行中

如何将多个值从复选框添加到.txt文件

如何将选中的复选框附加到html表中的列表顶部?

在复选框中接受多个值

将复选框附加到列表项

将动态选中的复选框值添加到列表中

如何将复选框中的值添加到数据库

在多个复选框组单击的 url 中附加参数

如何将复选框的值/名称添加到表单提交的变量中?

将多个选中的复选框的值传递到多个对应的输入字段中

使用附加将复选框添加到 Ultimatelistctrl

如何将复选框值添加到 reactJS 中的 setState 数组

如何获取多个复选框的值并使用复选框中的值执行增量

在选择多个复选框时将属性附加到变量