Javascript 如何使用D3.js设置下拉列表的位置?

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.js设置下拉列表的位置,但与其他元素不同,select元素没有x和y属性,所以我不知道如何操作

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 ...