javascript - 使用另一个值数组设置复选框值数组

标签 javascript jquery

我在表单上有一组输入复选框,如下所示:

<input type="checkbox" value=""><span value="Atlanta">Atlanta</span>
<input type="checkbox" value=""><span value="Charleston">Charleston</span>
<input type="checkbox" value=""><span value="Chicago">Chicago</span> and etc.

以上是由于运行 $dataTable.ajax.reload(),出于某种原因,这会删除我表单中复选框的值。这些复选框不是硬编码的,而是动态生成的。

我意识到我可以刷新页面并取回所有值,而不是执行以下操作,但我想看看是否有另一种方法来执行我在下面尝试执行的操作。

任何人,我获取了每个复选框的跨度文本,将其转换为一个数组并将其命名为 spanarr。我还将输入复选框变成了一个数组,称为 emergcheck

var emergspanarr = $('#emergencyForm span').toArray();
var spanarr = [];
var emergcheck = $('#emergencyForm input[type="checkbox"]');

emergspanarr.map(function(item){
    spanarr.push(item.innerHTML.trim());
});

我正在尝试将一个跨度值(来自 spanarr)插入每个输入复选框(来自 emergcheck)。

到目前为止我所拥有的:

for (var j = 0; j < emergcheck.length; j++){
    for (var k = 0; k < spanarr.length; k++){
        emergcheck.attr("value", function(i, val){
            return val + spanarr[k];
        })          
    }                   
}

但它正在产生这个:

<input value="AtlantaCharlestonChicagoHouston (Sales)Houston (Terminal)Long BeachMarseillesMiamiMontreal....Santa Ana SavannahSeattleSecaucusTorontoVancouverAtlantaCharlestonChicagoHouston (Sales)Houston (Terminal)Long BeachMarseillesMiamiMontrealSanta Ana .....Santa AnaSavannahSeattleSecaucusTorontoVancouver" type="checkbox"><span value="Atlanta">Atlanta</span>

<input value="AtlantaCharlestonChicagoHouston (Sales)Houston (Terminal)Long BeachMarseillesMiamiMontreal....Santa Ana SavannahSeattleSecaucusTorontoVancouverAtlantaCharlestonChicagoHouston (Sales)Houston (Terminal)Long BeachMarseillesMiamiMontrealSanta Ana .....Santa AnaSavannahSeattleSecaucusTorontoVancouver" type="checkbox"><span value="Charleston">Charleston</span> and etc.

我希望它是这样的:

<input type="checkbox" value="Atlanta"><span value="Atlanta">Atlanta</span>
<input type="checkbox" value="Charleston"><span value="Charleston">Charleston</span>
<input type="checkbox" value="Chicago"><span value="Chicago">Chicago</span

我觉得我很亲近。我错过了什么?需要另一双眼睛。谢谢,

最佳答案

只需尝试使用以下代码更改代码 -

JS 代码 -

for (var j = 0; j < emergcheck.length; j++){
    emergcheck.eq(j).val(spanarr[j]);                
}

也许它能帮到你。

关于javascript - 使用另一个值数组设置复选框值数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52279425/

相关文章:

javascript - 如何从表格中删除表格行元素的模式?

javascript - JavaScript 严格模式下 "this"的行为不一致

javascript - 如何防止类继承静态变量?

jquery - 使用 JQuery 更改点击时的 CSS

javascript - jQuery 使用对象的方法作为事件处理程序

javascript - 如何使用 jQuery 的 on(..) 动态绑定(bind)到多个事件

javascript - 单击按钮时更改选项卡

javascript - 无法使用 jQuery 的替换功能去掉反斜杠

javascript - 如何实现 Facebook 的 `Drag Links/Photos Here` ?

javascript - 如何使用react/react native点击删除或隐藏多个组件