我是一名新手,并且一直致力于在nodejs开展个人项目,这让我有点头疼。希望我能得到一些帮助。
以下是这种情况:我有5个具有相同类名的选择元素。然后我循环遍历每个选择元素的选项,这是有效的。我遇到问题的地方是我想从SQL查询中获取值(创建连接)。如何循环查看从SQL查询中获取的表中的值,并在每个相应的select元素中选择多个索引?
我希望这是有道理的。
以下是我的内容:
//execute queries here
var id = document.getElementById('idtext').value
connection.query('SELECT * FROM doneon WHERE SampID LIKE ?', id, (err, rows, fields) => {
if(err){
return console.log('An error ocurred with the query', err)
}
var seleobje = document.getElementsByClassName('sele')
for (var i=0; i<seleobje.length; i++){
for (var j=0; j<seleobje.item(i).length; j++){
for (var k=0; k<rows.length; k++){
if (seleobje.item(i).options[j].value == rows[0].TestID){
seleobje.item(i).options.selectedIndex = True
}
}
}
}
我猜我可能有太多的循环,但我不确定如何做到这一点。感谢您提供的所有帮助。
答案 0 :(得分:0)
再次阅读你的问题之后,我想我有一个解决方案。
你基本上需要在一个循环中迭代你的行,然后为每个row-id获取所有相关的选项(具有相同的值)。
你可以使用jQuery轻松完成:
for (var k=0; k<rows.length; k++){
var rowId = rows[k].TestID;
$("[value='"+rowId+"']").each(function(element){
this.selected = "selected";
});
}
此代码生成与您的行ID相匹配的所有<option>
条目selected
。完整的代码是:
//execute queries here
var id = document.getElementById('idtext').value
connection.query('SELECT * FROM doneon WHERE SampID LIKE ?', id, (err, rows, fields) => {
if (err){
return console.log('An error ocurred with the query', err)
}
for (var k=0; k<rows.length; k++){
var rowId = rows[k].TestID;
$("[value='"+rowId+"']").each(function(element){
this.selected = "selected";
});
}
}
如果已经创建了一个样本小提琴,则会将此代码与一些示例数据一起使用:https://jsfiddle.net/qgadhsLh/