Javascript 如何从Cheerio中相同级别的元素返回数组?
如何从同一级别的元素返回数组?一个指向正确方向的点就好了。短暂性脑缺血发作 这是我正在编写的HTML代码 =============================Javascript 如何从Cheerio中相同级别的元素返回数组?,javascript,arrays,node.js,web-scraping,cheerio,Javascript,Arrays,Node.js,Web Scraping,Cheerio,如何从同一级别的元素返回数组?一个指向正确方向的点就好了。短暂性脑缺血发作 这是我正在编写的HTML代码 ============================= <div class="quiz-area"> <div class="question-list" id="question-1" style="display: block;"> <div class="ques
<div class="quiz-area">
<div class="question-list" id="question-1" style="display: block;">
<div class="question-content">Select which is a mammal</div>
<input id="question_id_1" type="hidden" name="question_1" value="1">
<div>
<label for="answer-id-1" id="answer-label-1" class="answer">
<input type="radio" name="answer-1" id="answer-id-1" class="answer wrong-answer-label">Frog
</label>
</div>
<div>
<label for="answer-id-2" id="answer-label-2" class="answer">
<input type="radio" name="answer-2" id="answer-id-2" class="answer wrong-answer-label">Chicken
</label>
</div>
<div>
<label for="answer-id-3" id="answer-label-3" class="answer">
<input type="radio" name="answer-3" id="answer-id-3" class="answer wrong-answer-label">Tree
</label>
</div>
<div>
<label for="answer-id-4" id="answer-label-4" class="answer">
<input type="radio" name="answer-4" id="answer-id-4" class="answer right-answer-label">Dog
</label>
</div>
</div>
</div>
虽然数组中有一个空项,但我还是找到了一个脏的解决方案。只是做了一个过滤器来清除空项。如果你能改进,我会非常感激
===============================
let answers = $(el)
.find('.answer').toArray().map(function(x) {
return $(x).text().trim().replace(/\s\s+/g,'');
});
answerList = answers.filter(Boolean)
console.log(answerList)
======================================
请参阅跑步:
str_answers=$('label.answer').text()
console.log(str_答案)
arr\u answers=str\u answers.trim().split(/\s+/)
控制台日志(arr_应答)
警报(arr_应答)
选择哺乳动物
青蛙
鸡
树
狗
非常感谢您编辑此问题,Ashish!
JSON
I'm getting:
[
{
"question": "Select which is a mammal.",
"answers": "Frog\n \n Chicken\n \n Tree \n Dog",
"correct": "Dog"
}
]
I was expecting:
[
{
"question": "Select which is a mammal.",
"wrong": "Frog", "Chicken", "Tree", "Dog"
"correct": "Dog"
}
]
===============================
let answers = $(el)
.find('.answer').toArray().map(function(x) {
return $(x).text().trim().replace(/\s\s+/g,'');
});
answerList = answers.filter(Boolean)
console.log(answerList)
======================================
str_answers = $('label.answer').text()
arr_answers = str_answers.trim().split(/\s+/)
console.log(arr_answers)