我有这个选择:
<div>
<select id="action" multiple></select>
</div>
<script src="https://d3js.org/d3.v5.min.js"></script>
<script src="array.js"></script>
<script>$('#action option[value="transferred"]').attr("selected", "selected");</script>
Array.js正在使用选项填充“选择”。加载页面后,不会选择任何选项(尽管上面的代码中最后出现的JQuery脚本)。
当我尝试在chrome中运行相同的JQuery指令时,在同一页面上,选择了“转移”选项。
为什么要重新加载页面却没有选择任何选项,就像JQuery脚本不起作用一样?
编辑: 我从评论中了解到,填充脚本可以实现诺言。 然后,我将JQuery脚本移至填充的array.js文件中,如下所示:
function populateLists() {
d3.json('data.json').then( function(data) {
const keys = [
"coin_lab",
"action",
"from",
"to"]
var list = new Object;
keys.forEach(key => {
let unique = [...new Set(data.map(item => item[key]))];
list[key] = unique;
})
$('select').empty();
list.action.forEach(act => {
$('select').append(new Option(act, act))
})
})
.then($('#action option[value="transferred"]').attr("selected", "selected");
}
populateLists();
不幸的是,这不起作用,因为它可能是使用.then()的错误方法。 有帮助吗?