Javascript 如何使用D3.js设置下拉列表的位置?
我想用D3.js设置下拉列表的位置,但与其他元素不同,select元素没有x和y属性,所以我不知道如何操作Javascript 如何使用D3.js设置下拉列表的位置?,javascript,d3.js,drop-down-menu,Javascript,D3.js,Drop Down Menu,我想用D3.js设置下拉列表的位置,但与其他元素不同,select元素没有x和y属性,所以我不知道如何操作 d3.select("#chart") .append("select") .attr("id","desplegable") .on('change',onchange) .selectAll("option") .data(preguntas)
d3.select("#chart")
.append("select")
.attr("id","desplegable")
.on('change',onchange)
.selectAll("option")
.data(preguntas)
.enter()
.append("option")
.attr("value", function(d){return d;})
.text(function(d){return d;})
;
此外,我尝试在svg中插入下拉列表,但它不起作用
var svg = d3.select("#chart").append("svg")
.attr("id","svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform",
"translate(" + margin.left + "," + margin.top + ")");
svg.append("select")
.attr("id","desplegable")
.on('change',onchange)
.selectAll("option")
.data(preguntas)
.enter()
.append("option")
.attr("value", function(d){return d;})
.text(function(d){return d;})
;
提前感谢。HTML元素(如您的选择/选项输入)使用CSS样式定位——通常通过指定“类”(如果您希望以相同的方式设置多个元素的样式)或“id”(在HTML文档中必须是唯一的)来定位
因此,“定位”选择列表的最简单方法是在页面的
部分包含如下指令:
<style>
#desplegable {
left: 10px;
top: 5px;
}
</style>
通常,尝试对html元素进行像素定位是一项令人沮丧的练习——对于您和具有不同分辨率屏幕和设备的用户来说都是如此。但是,如果您需要为元素提供一些边距或对齐方式,那么有许多css指令可以帮助您使其看起来符合您的需要
在我看来,尝试不同样式的最简单方法是使用
F12
打开浏览器的开发控制台——当您在页面上找到元素时,使用右侧的样式列表以交互方式调整它…下面这个问题很有趣,它已经有2个赞成票,1个答案。。。让我们看看需要多长时间才能让人们意识到不能在SVG中添加HTML元素,比如select
(除非使用笨重的foreignObject
)。这是一个好观点——有趣的是,我刚刚掩盖了代码正试图这样做的事实。我想我只是想描述一下我通常是如何在同一个页面上混合html和svg元素的。。。
svg.append("select")
.attr("id","desplegable")
.style("left", "10px")
.style("top", "5px")
... etc ...