Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 23.04.2018
Сообщений: 20
1

.DOM Присвоение значения

09.11.2018, 23:49. Показов 2961. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Через js нужно введенный в input текст перенести в p. Подскажите, как правильно добраться к значению input через .DOM? По name или id?
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function a(){
        //Создание поля для ввода
        var input = document.createElement("input");
        input.id="idvv";
        input.name="imya";
        input.value="";
        document.body.appendChild(input);
        //Создание текста, который будет изменен по клику на кнопку
        var p = document.createElement("p");
        p.id="p1";
        p.textContent="Здесь отобразится введенный текст";
        document.body.appendChild(p);
        //Создание кнопки и присвоение нового значения p
        var input = document.createElement("input");
        input.type="button";
        input.value="Save";
        input.addEventListener("click", function(){
            var o = document.body.imya.value; //<--Как правильно добраться к значению input?
            alert(o);
            document.getElementById("p1").textContent=o;
        });
        document.body.appendChild(input);
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.11.2018, 23:49
Ответы с готовыми решениями:

Написать скрипт, рекурсивно обходящий дерево DOM страницы dom.html, начиная от корня DOM
Написать скрипт на языке JavaScript, рекурсивно обходящий дерево DOM страницы dom.html, начиная от...

Установка width в DOM на лету, и получение значения
столкнулся с проблемой к примеру есть у меня 100 div блоков в каждом текст разной длинны, мне...

Присвоение значения текстовому полю
Есть объект &lt;input class=&quot;sum-panel__input--2FGMZ&quot; type=&quot;text&quot; value=&quot;30&quot;&gt; Это поле для ввода...

Циклически сдвинуть значения переменных и отобразить их в DOM-элементе
Даны переменные a=5, b=3.14, c=27....

5
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
10.11.2018, 00:08 2
метод appendChild () как раз возвращает "приживлённый" элемент, т. е. для получения ссылки на созданный этим методом тег не нужно будет присваивать ему ни id, ни name
0
0 / 0 / 0
Регистрация: 23.04.2018
Сообщений: 20
10.11.2018, 00:22  [ТС] 3
kalabuni, все равно не понимаю как можно добраться до атрибута value у input с name 'imya'? Можете подробнее объяснить?
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
10.11.2018, 00:44 4
если хотите именно через атрибут name, то можно двумя способами:
document.getElementsByName ('imya') [0].value
или
document.body.querySelector ('[name="imya"]').value

-------------------------

а выше я указывал вам на то, что для доступа к инпуту никакого имени вообще не надо использовать, ибо
document.body.appendChild (input) вернёт вам созданный инпут, т.е.

Javascript
1
var tag =  document.body.appendChild (input); alert (tag.value);
1
0 / 0 / 0
Регистрация: 23.04.2018
Сообщений: 20
10.11.2018, 00:45  [ТС] 5
kalabuni, благодарю, все работает.
0
Эксперт JS
6492 / 3903 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
10.11.2018, 12:04 6
Стенд с пятью разными способами доступа к элементу. Способы не все, но всё равно интересные.
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
</head>
<body>
    <script>
        a();
 
        function a() {
            //Создание поля для ввода
            var input = document.createElement("input");
            input.id = "idvv";
            input.name = "imya";
            input.value = "";
            let inp = document.body.appendChild(input);
 
            //Создание текста, который будет изменен по клику на кнопку
            var p = document.createElement("p");
            p.id = "p1";
            p.textContent = "Здесь отобразится введенный текст";
            document.body.appendChild(p);
 
            let variants = [
                function (e) {
                    var o = inp.value; // Доступ к input через переменную.
                    alert(o);
                    document.getElementById("p1").textContent = o + " " + e.target.value;
                },
 
                function (e) {
                    var o = idvv.value; // Доступ к input по прямому id.
                    alert(o);
                    document.getElementById("p1").textContent = o + " " + e.target.value;
                },
 
                // function (e) {
                //     var o = imya.value; // Доступ к input по прямому имени здесь выдает ошибку.
                //     alert(o);
                //     document.getElementById("p1").textContent = o + " " + e.target.value;
                // },
 
                function (e) {
                    var o = document.getElementById("idvv").value; // Доступ к input по getElementById().
                    alert(o);
                    document.getElementById("p1").textContent = o + " " + e.target.value;
                },
 
                function (e) {
                    var o = document.getElementsByName("imya")[0].value; // Доступ к input по getElementsByName().
                    alert(o);
                    document.getElementById("p1").textContent = o + " " + e.target.value;
                },
 
                function (e) {
                    var o = document.querySelector("input[name=imya]").value; // Доступ к input по querySelector().
                    alert(o);
                    document.getElementById("p1").textContent = o + " " + e.target.value;
                },
            ];
 
            //Создание кнопки и присвоение нового содержимого в <p> тремя способами
            for (let i = 0; i < variants.length; ++i) {
                var input = document.createElement("input");
                input.type = "button";
                input.value = "Save" + (i + 1);
                input.onclick = variants[i];
                document.body.appendChild(input);
            }
        }
    </script>
</body>
</html>
Доступ по прямому id работает, но не рекомендуется.
Доступ по прямому имени работает не всегда и не рекомендуется.
Можно ещё получить доступ через индексатор document.forms[0][n]

------
А вообще имхо штатные методы доступа к элементу слишком многословные. jQuery конечно создавался как прекрасная альтернатива.
0
10.11.2018, 12:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2018, 12:04
Помогаю со студенческими работами здесь

HTML DOM как с использованием Javascript создать узлы DOM
Доброго времени суток. хочу через Javascript по событию onclick добавить в html документ что то...

Присвоение класса при изменении значения input radio
Сама задача: &lt;h2&gt;Доставка&lt;/h2&gt; &lt;input type=&quot;radio&quot; id=&quot;deliveri_1&quot; value=&quot;1&quot;&gt; ...

Присвоение переменной значения введенного в форму <input type="text">
Я не программист, я только учус) Собственно вопрос в теме. как это провернуть в javascript? Пробую...

Присвоение php переменной значения js переменной
Доброго времени суток, я только начинаю изучать JavaScript и у меня возник следующий вопрос:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru