Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

JavaScript. Как убрать введённый текст ?

2293  1 2 3 4 все
Феврунья прохожий20.02.21 11:09
Феврунья
20.02.21 11:09 
Здесь пример


- в левую колонку таблицы текст вводиться

- при нажатии на кнопку "schreibe" текст выводиться в правую колонку таблицы

- при нажатии на кнопку "entleere" текст должен стираться, в чём собственно у меня и проблема:


document.getElementById(id).innerHTML ='';

Вот так должно стираться из <td><input id="b1"></td>


document.getElementById('f0').value ='';

Вот так должно стираться из <td><div id='f2'></div></td>


Но ничего не происходит. Где ошибка ?




#1 
gendy Dinosaur20.02.21 12:11
gendy
NEW 20.02.21 12:11 
в ответ Феврунья 20.02.21 11:09

а где какая у вас кнопка?

откуда вы вообще стираете, просто текст в <div>, или даже лучше в <span> или value в текстовом input ?


document.getElementById(id).innerHTML ='';
Вот так должно стираться из <td><input id="b1"></td>

тогда уж наверное надо было написать document.getElementById("b1").innerHTML =''; или document.getElementById("b1").text ='';

но все равно смысла не имеет, input не имеет innenHTML

тогда уж хтмл должен выглядеть так

<td><span id="b1">удаляемый хтмл</td>


если же вы удаляете значение в инпуте, то


document.getElementById('f0').value ='';


и хтмл выглядит

<td><input id="f0" value="удаляемое значение"></td>


Фашизм будет разбит


Человека карают только те боги, в которых он верит

#2 
gendy Dinosaur20.02.21 12:17
gendy
NEW 20.02.21 12:17 
в ответ Феврунья 20.02.21 11:09

кстати совет начать изучение jquery остается в силе ,

это же прекрасно заменить ужас document.getElementById("b1") конструкцией $('#b1')

Фашизм будет разбит


Человека карают только те боги, в которых он верит

#3 
gendy Dinosaur20.02.21 12:34
gendy
NEW 20.02.21 12:34 
в ответ Феврунья 20.02.21 11:09

я бы хтмл изменил так


<html lang="de">

<head><title>Eingabe / Ausgabe</title></head>

<body>

<link rel="stylesheet" type="text/css" href="aufgaben.css">

<button onclick="leereFenster()">entleere Fenster</button>

<br>

<table border="1">

<tr>

<td>Eingabe</td>

<td>Ausgabe</td>

</tr>

<tr>

<td><input id="b0"></td>

<td><div class='output' id='f0'></div></td>

</tr>

<tr>

<td><input id="b1"></td>

<td><div class='output' id='f1'></div></td>

</tr>

<tr>

<td><input id="b2"></td>

<td><div class='output' id='f2'></div></td>

</tr>

</table>

<br>

<button onclick="Pruefe()">schreibe</button>

<script src="aufgaben.js"></script>

</body>

</html>


а яваскриот так


function Pruefe(){

a=document.getElementById('b0').value;

b=document.getElementById('b1').value;

c=document.getElementById('b2').value;

document.getElementById('f0').innerHTML =a;

document.getElementById('f1').innerHTML =b;

document.getElementById('f2').innerHTML =c;

}

function leereFenster(){

var outputs = document.getElementsByClassName("output");

for (var i = 0; i < outputs.length; i++) {

outputs.item(i).innerHTML = '';

}

}

Фашизм будет разбит


Человека карают только те боги, в которых он верит

#4 
gendy Dinosaur20.02.21 12:47
gendy
NEW 20.02.21 12:47 
в ответ Феврунья 20.02.21 11:09, Последний раз изменено 20.02.21 12:49 (gendy)

а теперь маленькое изменение,

и сравните яваскрипт

function Pruefe(){

$('#f0').text($('#b0').val());

$('#f1').text($('#b1').val());

$('#f2').text($('#b2').val());

}

function leereFenster(){

$('.output').text('');

}

Фашизм будет разбит


Человека карают только те боги, в которых он верит

#5 
Феврунья прохожий20.02.21 16:01
Феврунья
NEW 20.02.21 16:01 
в ответ gendy 20.02.21 12:34, Последний раз изменено 05.03.21 20:02 (Феврунья)
No body
#6 
Феврунья прохожий20.02.21 16:07
Феврунья
NEW 20.02.21 16:07 
в ответ gendy 20.02.21 12:17, Последний раз изменено 05.03.21 20:02 (Феврунья)
No body
#7 
gendy Dinosaur20.02.21 17:25
gendy
NEW 20.02.21 17:25 
в ответ Феврунья 20.02.21 16:01

ну вообще то ещё красивее было бы все id вообще поудалять, дать класс input ам и перенести все значения в цикле а не поштучно

Фашизм будет разбит


Человека карают только те боги, в которых он верит

#8 
gendy Dinosaur20.02.21 17:26
gendy
NEW 20.02.21 17:26 
в ответ Феврунья 20.02.21 16:07
Но для изучения iQuery нужно знать JS,

не нужно, наоборот мешать будет.

Фашизм будет разбит


Человека карают только те боги, в которых он верит

#9 
Феврунья прохожий20.02.21 18:33
Феврунья
NEW 20.02.21 18:33 
в ответ gendy 20.02.21 17:25, Последний раз изменено 20.02.21 18:35 (Феврунья)

Текст стираеться только во второй колонке.

где текст выводится после нажатия кнопки:

<td><div class='output' id='f0' value=''></div></td>


В окне ввода ничего не меняеться:

<td><input class='output' id='b0' value=''></td>


ну вообще то ещё красивее было бы все id вообще поудалять, дать класс input ам и перенести все значения в цикле а не поштучно

id нужны будут, их нельзя удалять

#10 
gendy Dinosaur20.02.21 18:40
gendy
NEW 20.02.21 18:40 
в ответ Феврунья 20.02.21 18:33
В окне ввода ничего не меняеться:

Хотите там тоже удалить?

Пишите value='' вместо innenHTML применительно к этим полям


id нужны будут, их нельзя удалять

Зачем? В данном задании они не нужны. Итерации лучше по классу делать

Фашизм будет разбит


Человека карают только те боги, в которых он верит

#11 
Феврунья прохожий20.02.21 18:48
Феврунья
NEW 20.02.21 18:48 
в ответ gendy 20.02.21 18:40

document.getElementById('b0').value='';

точно....


Спасибо !


Зачем? В данном задании....

это ещё не всё задание.

#12 
Феврунья прохожий20.02.21 19:21
Феврунья
NEW 20.02.21 19:21 
в ответ gendy 20.02.21 18:40, Последний раз изменено 05.03.21 20:03 (Феврунья)

Пришлось такой цикл сделать:

function leereFenster()
{ let idb, idf;
for (let i = 0; i < 3; i++)
{
idb='b'+i;
idf='f'+i;
console.log(+idb,+idf);
document.getElementById(idb).value='';
document.getElementById(idf).innerHTML=''; }}

#13 
NightWatch коренной житель20.02.21 19:38
NightWatch
NEW 20.02.21 19:38 
в ответ Феврунья 20.02.21 19:21
console.log(+idb,+idf);

Есть какой-то особый, скрытый смысл в плюсах?

#14 
Феврунья прохожий20.02.21 20:11
Феврунья
NEW 20.02.21 20:11 
в ответ NightWatch 20.02.21 19:38

сначало было так: console.log('idb= ' +idb,'idf= ' +idf);

забыла стереть плюсы

#15 
gendy Dinosaur20.02.21 21:30
gendy
NEW 20.02.21 21:30 
в ответ Феврунья 20.02.21 19:21

Почему не классами? Использование id не очень хорошая идея, классов может быть много, а ид повторяться не может

Фашизм будет разбит


Человека карают только те боги, в которых он верит

#16 
Феврунья прохожий20.02.21 21:40
Феврунья
NEW 20.02.21 21:40 
в ответ gendy 20.02.21 21:30
Почему не классами ?

В каждой строке будет отдельное задание и проверять его нужно будет отдельно, поэтому id

#17 
gendy Dinosaur20.02.21 21:54
gendy
NEW 20.02.21 21:54 
в ответ Феврунья 20.02.21 21:40

почему не индексом массива элементов класса?

Фашизм будет разбит


Человека карают только те боги, в которых он верит

#18 
Феврунья прохожий20.02.21 22:22
Феврунья
NEW 20.02.21 22:22 
в ответ gendy 20.02.21 21:54
почему не индексом массива элементов класса?

Вот такое ?


let myArray = {
0: "345",
1: "ещё",
2: "irgendwas"};

#19 
gendy Dinosaur21.02.21 08:53
gendy
NEW 21.02.21 08:53 
в ответ Феврунья 20.02.21 22:22

Например такое. Очень удобно для масштабирования. А если у вас не три строчки а 100,чтобы для каждой ид не сочинять

Фашизм будет разбит


Человека карают только те боги, в которых он верит

#20 
1 2 3 4 все