需要在重新检查后用逗号连接最接近的td的值



我现在有一个工作脚本,它获取复选框中最近的TD元素的值,然后将该值传递给URL。

$(document).ready(function() {
$("input:checkbox").change(function(index){  
var value = $(this).closest('tr').find('td.views-field-nid').text();
$("#compare[type='button']").click(function() {
window.location = 'URL/'+value+'';
});
});

我现在的问题是找到一种方法来连接这些值,用逗号分隔。

我已经查看了map/join,但是当我测试它时,它没有工作。

有谁知道解决方法吗?

您提到了map(),这正是您为了最好地实现这一目标所需要的。您可以使用它来构建所有选定值的数组,然后使用join()来组合它们。

还要注意,应该避免嵌套事件处理程序。您可以通过分离changeclick事件逻辑并使用设置data属性来实现这一点,该属性可以根据需要由按钮读取。试试这个:

jQuery($ => {
let $btn = $("#compare[type='button']");
let $checkboxes = $("input:checkbox");
$checkboxes.on('change', e => {
let value = $checkboxes.filter(':checked').map((i, el) => el.value).get().join(',');
$btn.data('value', value);
}).trigger('change');

$btn.on('click', e => {
var url = `URL/${$(e.target).data('value')}`;
console.log(url); // for demo only
// window.location.assign(url); // uncomment this in your local version
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" value="1" checked />
<input type="checkbox" value="2" />
<input type="checkbox" value="3" checked />
<input type="checkbox" value="4" />
<input type="checkbox" value="5" checked /><br />
<button id="compare" type="button">Compare</button>

最新更新