循环select多个select对象的多个选项,并根据SQL查询结果select选项

我是一个新手,一直在nodejs上做一个个人项目,这让我感到头疼。 希望我能得到一些帮助。

这是情况:我有5个select元素与我循环相同的类名。 然后,我循环select每个select元素,这个工程。 我偶然发现的问题是,我想从SQL查询中获取值(连接已经创build)。 如何循环从SQL查询获得的表中的值,并在每个适当的select元素中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 } } } } 

我猜我可能有太多的循环,但我不确定如何做到这一点。 感谢您提供的所有帮助。

再次阅读你的问题后,我想我有一个解决scheme给你。

你基本上需要在一个循环中迭代你的行,然后得到每个行id所有相关的选项(具有相同的值)。

你可以很容易地使用jQuery来做到这一点:

 for (var k=0; k<rows.length; k++){ var rowId = rows[k].TestID; $("[value='"+rowId+"']").each(function(element){ this.selected = "selected"; }); } 

这段代码使所有<option>条目与您的行ID匹配。 完整的代码将是:

 //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"; }); } } 

如果已经创build了一个示例小提琴,它使用这个代码和一些示例数据: https : //jsfiddle.net/qgadhsLh/