我创建了几个月的下拉菜单作为选项,但是想要预先指定一个选项作为默认值.但是,默认选择似乎固执地仍然是列表中的第一个选项.
我尝试了下面的代码,这对我来说很有意义,因为对于任何其他属性,设置一个简单的比较就足以改变该属性的值.
var defaultOptionName; // desired default dropdown name d3.select("#dropdown").append("select") .on("change",someFunction) .selectAll("option").data(dataset) .enter().append("option") .attr("value",function(d){return d;}) .attr("selected",function(d){ return d === defaultOptionName; }) .text(function(d){ return d; });
我知道我的问题只是一个正确的语法问题,但当我试图搜索互联网和stackoverflow,但无法弄清楚我错过了什么.
解决方法
我发现不是使用.attr,而是使用.property来访问默认选择选项.只需要一个简单的替换,所以你的代码片段看起来像:
.property("selected",function(d){ return d === defaultOptionName; })