循环获取所有元素,在哪里利用forEach?



我正在做网页抓取返回值,但我不确定如何输出所有元素。

例如html应该是这样的:

<input type="radio" name="code" value="111">
<input type="radio" name="code" value="222">
<input type="radio" name="code" value="333">

我正在尝试输出所有的值。

function scrapeValues {
const $codes = $('input[name="code"]');
for (const code of $codes.get()) {
const $code = $(code);
const results = $code.val() as string;
codeArray = results.trim();
}
return codeArray
}

目前,我只得到最后一个值(333)。我想我需要在某个地方利用forEach,但我试图在$codes.get()之后使用它,但我得到错误,不确定是否因为关闭标签在错误的地方,或者如果我需要在其他地方实现它。

OP希望在通过document.querySelectorAll检索到例如NodeList之后使用Array.prototype.map,在映射之前,需要制作Array.from

顺便说一句,jquery实现了自己的map

console.log(
Array.from(
document.querySelectorAll('[type="radio"][name="code"]')
).map(node => node.value)
);
console.log([
...document.querySelectorAll('[type="radio"][name="code"]')
].map(node => node.value)
);
console.log(
$('[type="radio"][name="code"]')
.map(function () { return this.value; })
.get()
);
.as-console-wrapper { min-height: 100%!important; top: 0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="radio" name="code" value="111" />
<input type="radio" name="code" value="222" />
<input type="radio" name="code" value="333" />

最新更新