2014-11-12 10 views
5

Tôi đã tạo một menu thả xuống trong vài tháng làm tùy chọn nhưng muốn thiết kế trước một tùy chọn làm giá trị mặc định. Tuy nhiên, lựa chọn mặc định dường như cứng đầu vẫn là tùy chọn đầu tiên trong danh sách.Đặt lựa chọn mặc định của trình đơn thả xuống với D3

Tôi đã thử mã bên dưới, điều này có ý nghĩa rất nhiều đối với tôi vì đối với bất kỳ thuộc tính nào khác, việc thiết lập so sánh đơn giản là đủ để thay đổi giá trị của thuộc tính đó.

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; }); 

Tôi biết rằng vấn đề của tôi chỉ là vấn đề đúng cú pháp, nhưng khi tôi cố gắng tìm kiếm trên internet và stackoverflow, nhưng không thể hiểu được tôi đang thiếu gì.

Trả lời

9

Tôi thấy rằng thay vì sử dụng .attr, tôi cần sử dụng .property để truy cập tùy chọn lựa chọn mặc định. Một thay thế đơn giản là tất cả những gì đã được yêu cầu, vì vậy đoạn mã của bạn sẽ trông giống như sau:

.property("selected", function(d){ return d === defaultOptionName; }) 
Các vấn đề liên quan