Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用另一个值数组设置复选框值数组_Javascript_Jquery - Fatal编程技术网

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

Javascript 使用另一个值数组设置复选框值数组,javascript,jquery,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 val

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

<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.
我正在尝试将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
我觉得我很亲近。我错过了什么?需要另一双眼睛。谢谢,

我想您只需要输入的信息。您可以使用jQuery中的.val,也可以使用纯js中的.value

jQuery方式:

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

for (var j = 0; j < emergcheck.length; j++) {
    emergcheck[j].val(emergspanarr[j].val());
}
纯js方式:

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

for (var j = 0; j < emergcheck.length; j++){
    emergcheck[j].value = emergspanarr[j].value;
}

只要试着用下面的代码来更改代码-

JS代码-

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

也许它可以帮助您。

请将代码作为代码,而不是图像。您应该能够从“元素”面板复制和粘贴,或者单击鼠标右键并选择“复制>复制outerHTML.FYI”,映射将返回一个数组;没必要推。var spanarr=emergspanarr.mapfunction项{return item.innerHTML.trim;}.@HereticMonkey在复制outerHTML后,我意识到循环比我最初认为的lol更糟糕,在值内输出数组17倍,因此我缩短了post的输出。在推送时注意到,我会在代码中更改。谢谢请尝试我的答案@hnewbieThanks以获得答案,但这两个答案都不起作用。我会继续挖掘的。@hnewbie我不知道你的斯潘拿着我的枪。这只适用于元素数组。我的错。我将编辑我的答案,改为使用emergspanarr。这应该是可行的,纯js方式也使用jQuery来选择元素。如果您希望使用纯JS,请使用var emergspanarr=Array.fromdocument.querySelectorAll'emergencyForm span';和另一个类似的代码。你能解释一下这里发生了什么吗?成功了!我以前从未见过eq被使用过。在jquery网站上查找。这是因为我的两个数组的索引都需要过滤吗?它只是用来选择带有索引值的标记。您可以从这里阅读更多内容。感谢您接受我的答案并对其进行投票:
for (var j = 0; j < emergcheck.length; j++){
    emergcheck.eq(j).val(spanarr[j]);                
}