gpt4 book ai didi

javascript - 强制选择特定的选项组合框

转载 作者:行者123 更新时间:2023-11-30 11:45:49 24 4
gpt4 key购买 nike

我正在使用 d3 并具有以下内容。我如何更改代码,以便无论何时更改单选按钮 - 组合框“world”中的选项将始终成为可见选项 - 如果图形显示除 world 以外的任何内容,它应该更改为 world ?

数据:

Category,country
XXX,mex
XXX,world
XXX,mex
XXX,ireland
ZZZ,uk
ZZZ,uk
ZZZ,world
ZZZ,uk
ZZZ,usa
ZZZ,aruba
ZZZ,ireland
YYY,foo
YYY,world
YYY,foo

代码:

<!DOCTYPE html>
<html>

<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>comboBoxWithRadios</title>
<script src="https://d3js.org/d3.v3.js"></script>
<style type="text/css">

#projection-menu {
position: absolute;
left: 15px;
top: 45px;
}

</style>
</head>

<body>
<div id="radioDiv">
<label>
<input type="radio" name="dataset" id="dataset" value="XXX"> XXX</label>
<label>
<input type="radio" name="dataset" id="dataset" value="YYY" checked> YYY</label>
<label>
<input type="radio" name="dataset" id="dataset" value="ZZZ">ZZZ</label>
</div>
<select id="projection-menu"></select>
<script type="text/javascript">
d3.select("input[value=\"YYY\"]").property("checked", true);
var exampleCSV = "comboBoxWithRadios.csv"


selectDataset();

d3.selectAll("input")
.on("change", selectDataset);

function selectDataset() {

var v = this.value;
if (undefined == v) {
v = "YYY"
}

d3.csv(exampleCSV, function(rows) {
dta = rows.filter(function(row) {
if (row['Category'] == v) {
return true;
}
});

//clear out the combobox
removeOptions(document.getElementById("projection-menu"));

var menu = d3.select("#projection-menu")
.on("change", change);
console.log(d3.map(dta, function(d){return d.country;}))
menu.selectAll("option")
.data(d3.map(dta, function(d){return d.country;}).keys())
.enter()
.append("option")
.text(function(d) {
return d;
});
});
};


function removeOptions(selectbox) {
var i;
for (i = selectbox.options.length - 1; i >= 0; i--) {
selectbox.remove(i);
}
}

function change() {
console.log(this.value);
};


</script>
</body>
</html>

最佳答案

使用:

.property("selected", function(d){ 
return d === "world";
})

在你的代码中,它应该是这样的:

menu.selectAll("option")
.data(d3.map(dta, function(d) {
return d.country;
}).keys())
.enter()
.append("option")
.property("selected", function(d) {
return d === "world";
})
.text(function(d) {
return d;
});

这是你的 plunker:http://plnkr.co/edit/PRkGX2zvTBmftoGwvHnr?p=preview

PS:你的 plunker 中的 CSV 文件是错误的。

关于javascript - 强制选择特定的选项组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41018681/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com