У меня есть следующие коды dojo для создания графического элемента поверхности под div:
....
<script type=text/javascript>
....
function drawRec(){
var node = dojo.byId("surface");
// remove all the children graphics
var surface = dojox.gfx.createSurface(node, 600, 600);
surface.createLine({
x1 : 0,
y1 : 0,
x2 : 600,
y2 : 600
}).setStroke("black");
}
....
</script>
....
<body>
<div id="surface"></div>
....
drawRec()
в первый раз нарисует прямоугольную графику. Если я снова вызову эту функцию в привязке href следующим образом:
<a href="javascript:drawRec();">...</a>
он снова будет рисовать другую графику. Что мне нужно, чтобы очистить всю графику под div, а затем создать заново. Как я могу добавить для этого несколько кодов додзё?
javascript
dojox.gfx
David.Chu.ca
источник
источник
Нестандартный, но быстрый и хорошо поддерживаемый.
источник
Прежде всего, вам нужно один раз создать поверхность и держать ее где-нибудь под рукой. Пример:
domNode
обычно неукрашенный<div>
, который используется как заполнитель для поверхности.Вы можете очистить все на поверхности за один раз (все существующие объекты формы станут недействительными, не используйте их после этого):
Все функции и методы, относящиеся к поверхностям, можно найти в официальной документации на dojox.gfx.Surface . Примеры использования можно найти в
dojox/gfx/tests/
.источник
источник
elem.textContent = "";
однако, только потому, что jQuery делает это, не означает, что он не содержит ошибок, например, stwissel говорит: «innerHTML работает только в том случае, если вы имеете дело только с HTML. Если есть, например, Будет работать только SVG внутри, удаление элементов ". Также см. Другие соответствующие примечания здесь: stackoverflow.com/questions/3955229/…В Dojo 1.7 или новее используйте
domConstruct.empty(String|DomNode)
:В старом Dojo используйте
dojo.empty(String|DomNode)
(устарело в Dojo 1.8):Каждый из этих
empty
методов безопасно удаляет всех дочерних узлов узла.источник
Из документации API dojo :
источник
Если вы ищете современный способ> 1.7 Dojo для уничтожения всех дочерних узлов, это способ:
За подробностями обращайтесь к документации "dom-construct".
источник
domConstruct.empty()
, в данном случае будет лучше.