Я столкнулся с странным сценарием, используя D3, чтобы создать простой образный опыт.Простой выбор текста D3.js
Поток идет что-то вроде этого ...
1) Создайте элемент с помощью D3, со значением по умолчанию
2) Привязка функции к кнопке, чтобы прочитать значение этого текстового поля и делать вещи
var content = d3.select('#content');
content.append('div')
.append("input")
.attr("type", "text")
.attr("id", "textinput")
.attr("size", "40")
.attr("value","Default Text");
content.append('div')
.html('Get contents...')
.on("click", function() {
console.log("D3 Selection: " + d3.select("#textinput").attr('value'));
console.log("DOM Selection: " + document.getElementById("textinput").value);
});
значение выбора DOM является то, что было введено пользователем, а значение выбора D3 всегда «текст по умолчанию», независимо от того, что пользователь вошел:
D3 Selection: Default Text
DOM Selection: I typed something
Что мне не хватает (кроме очевидных знаний, навыков и т. Д. - в моей защите я в основном просто делаю это для удовольствия)? Не должен ли функционировать D3-селектор таким образом?
Dave
оказывается, что 'атр ("значение")' отличается от '.value'. Вы можете увидеть это, используя следующий код: 'd3.select (" # textinput "). Each (function() {return console.log (this.value);})'. Внутри '' '' '' '' '' 'относится к фактическому элементу страницы. [Релевантные] (http://stackoverflow.com/questions/6003819/properties-and-attributes-in-html). – JSBob