Я новичок. Может ли кто-нибудь сказать мне, как удалить элемент HTML, используя исходный Javascript, а не jQuery.
index.html
<html>
<head>
<script type="text/javascript" src="myscripts.js" > </script>
<style>
#dummy {
min-width: 200px;
min-height: 200px;
max-width: 200px;
max-height: 200px;
background-color: #fff000;
}
</style>
</head>
<body>
<div id="dummy"></div>
<form>
<input type="submit" value="Remove DUMMY" onclick="removeDummy(); "/>
</form>
</body>
myscripts.js
function removeDummy() {
var elem = document.getElementById('dummy');
elem.parentNode.removeChild(elem);
}
Что происходит, когда я нажимаю кнопку отправки, так это то, что она исчезает на очень короткое время, а затем немедленно появляется снова. Я хочу полностью удалить элемент при нажатии кнопки.
javascript
html
Кодер-новичок
источник
источник
Ответы:
Что происходит, так это то, что форма отправляется, и поэтому страница обновляется (с ее исходным содержимым). Вы обрабатываете
click
событие с помощью кнопки отправки.Если вы хотите удалить элемент и не отправлять форму,
submit
вместо этого обработайте событие в форме и вернитесьfalse
из обработчика:HTML:
JavaScript:
Но вам вообще не нужна (или не нужна) форма, если ее единственная цель - удалить фиктивный div. Вместо:
HTML:
JavaScript:
Однако такой стиль настройки обработчиков событий устарел. Кажется, у вас есть хорошие инстинкты в том, что ваш код JavaScript находится в отдельном файле и тому подобное. Следующий шаг - пойти дальше и избежать использования
onXYZ
атрибутов для подключения обработчиков событий. Вместо этого в своем JavaScript вы можете подключить их более новым (около 2000 года) способом:HTML:
JavaScript:
... затем вызовите
pageInit();
изscript
тега в самом конце вашей страницыbody
(непосредственно перед закрывающим</body>
тегом) или изнутриwindow
load
события, хотя это происходит очень поздно в цикле загрузки страницы и поэтому обычно не подходит для подключения события обработчики (например, после загрузки всех изображений).Обратите внимание, что мне пришлось немного обработать, чтобы справиться с различиями в браузерах. Возможно, вам понадобится функция для подключения событий, чтобы вам не приходилось каждый раз повторять эту логику. Или подумайте об использовании библиотеки, такой как jQuery , Prototype , YUI , Closure или любой из нескольких других, чтобы сгладить эти различия в браузерах для вас. Это очень важно , чтобы понять основной материал происходит, как с точки зрения фундаментальных JavaScript и основ DOM, но библиотеки имеют дело с большим количеством несоответствий, а также обеспечить много полезных утилит - как средство подключения обработчиков событий, которые рассматриваются различия браузеров. Большинство из них также предоставляют способ настройки функции (например,
pageInit
) для запуска, как только DOM будет готов к манипуляциям, задолго доwindow
load
срабатывания.источник
type="button"
или вставьтеreturn false;
в свою JS-функциюonxyz
свойству элемента) позволяет использовать только один обработчик, и если вы назначаете свойство, вы заменяете то, что использовалось ранее, поэтому это не очень хорошо сочетается с другими. (продолжение)Просто сделай это
element.remove();
Попробуйте здесь ПОСМОТРЕТЬ
http://jsfiddle.net/4WGRP/
источник
.remove()
Вы должны использовать input type = "button" вместо input type = "submit".
Ознакомьтесь с базовыми ресурсами по HTML и JavaScript в Центре разработчиков Mozilla.
источник
Ваш JavaScript правильный. У вашей кнопки есть кнопка,
type="submit"
которая вызывает обновление страницы.источник
Он появляется снова, потому что ваша кнопка отправки перезагружает страницу. Самый простой способ предотвратить такое поведение - добавить
return false
кonclick
подобному:источник
Измените тип ввода на «кнопка». Как сказали TJ и Pav, форма отправляется. Ваш Javascript выглядит правильно, и я рекомендую вам попробовать его не-JQuery способом :)
источник
index.html
myscripts.js
источник
Это правильный код. Вероятно, ваша форма отправляется, и вы видите новую страницу (где элемент снова будет существовать).
источник
Попробуйте запустить этот код в своем скрипте .
И, надеюсь, удалит элемент / кнопку.
источник
Это работает. Просто уберите кнопку с «пустышки»,
div
если хотите сохранить кнопку.источник
Я тоже новичок, но вот один простой и легкий способ: вы можете использовать externalHTML, который представляет собой весь тег, а не только его часть:
EX:
<tag id='me'>blahblahblah</tag>
«s innerHTML будетblahblahblah
, и outerHTML бы все это,<tag id='me'>blahblahblah</tag>
.Так, например, если вы хотите удалить тег, он в основном удаляет его данные, поэтому, если вы измените внешний HTML на пустую строку, это будет похоже на его удаление.
Вместо этого, если вы хотите просто не отображать его, вы можете стилизовать его в JS, используя свойства видимости, непрозрачности и отображения.
Обратите внимание, что
opacity
при этом элемент все еще отображается, но вы не можете его так часто видеть. Кроме того, вы можете выделять текст, копировать, вставлять и делать все, что обычно, даже если это невидимо.Visibility
больше соответствует вашей ситуации, но при этом останется пустое прозрачное пространство размером с элемент, к которому оно было применено.Я бы порекомендовал вам отображать, в зависимости от того, как вы делаете свою веб-страницу. Отображение в основном удаляет элемент из вашего представления, но вы все равно можете увидеть его в DevTools. Надеюсь это поможет!
источник