Я пытаюсь обновить var zz
ниже тем, что пользователь вводит в текстовую область, когда он нажимает submit. Идея состоит в том, чтобы создать базовое облако слов, используя слова, которые пользователь представляет в форме.
<!DOCTYPE html>
<meta charset="utf-8">
<script src="../lib/d3/d3.js"></script>
<script src="../d3.layout.cloud.js"></script>
<body>
<script>
var fill = d3.scale.category20();
var zz= ["Hello", "world", "normally", "you", "want", "more", "words", "than", "this"];
d3.layout.cloud().size([300, 300])
.words((zz).map(function(d) {
return {text: d, size: 10 + Math.random() * 90};
}))
.rotate(function() { return ~~(Math.random() * 2) * 90; })
.font("Impact")
.fontSize(function(d) { return d.size; })
.on("end", draw)
.start();
........
</script>
<div style="text-align: center">
<div id="presets"></div>
<div id="custom-area">
<p><label for="text">Enter some text.</label>
<p><textarea id="text"></textarea>
<button id="zz" type="submit">Go!</button>
</div>
</div>
Когда форма отправляется или нажимается кнопка, возьмите значение поля и разделите его пробелами:
На основе вашей веб-страницы примера у вас было несколько вопросов:
x
не определен, я получил ошибку в консолиdemo
id, за ваш javascriptЗдесь скрипка, показывающая простое демо.
function myFunction(){
var zz = document.getElementById("text").value.split(" ");
document.getElementById("demo").innerHTML = zz;
}
console.log(zz)
вы увидите, что это на самом деле массив, несмотря на то, как он может выглядеть в HTML.
zz
.