#javascript #jquery
#javascript #jquery
Вопрос:
Я пытаюсь добавить что-то в textarea. это не работает…
<html><head></head><body>
<div id="wrapper">
<div id="leftc">
text here
<a href="#" onclick="javascript: $('wrapper').$('rightx').$('thebox').value = 'TESTntestnntest">Add</a>
</div>
<div id="rightx">
<textarea id="thebox" rows="10" cols="50"></textarea>
</div>
</div>
</body></html>
Есть идеи?
РЕДАКТИРОВАТЬ: РЕШЕНИЕ, которое я ИСПОЛЬЗОВАЛ: (Спасибо всем за понимание моих ошибок)
<a href="#" onclick="javascript:document.getElementById('thebox').value = 'TESTntestnntest';">Add</a>
Комментарии:
1. Поскольку вы включили теги html / head, я предполагаю, что это ваша полная разметка? Где ссылка на jQuery?
2. У вас есть учетная запись Firefox Gold? Он включает в себя консоль, которая регистрирует ошибки в вашем коде. Это очень полезно.
3. @Брэндон, нет jquery. Это все, что у меня есть. Я ищу решение только для javascript, если это возможно…
Ответ №1:
Этот фрагмент кода не имеет смысла и полон ошибок:
$('wrapper').$('rightx').$('thebox').value = 'TESTntestnntest
Правильный код jQuery был бы:
$('#thebox').get(0).value = 'TESTntestnntest';
Или это может быть даже проще в обычном javascript:
document.getElementById("thebox").value = 'TESTntestnntest';
У вас возникли следующие ошибки:
- Ошибки в кавычках
- Недопустимая и ненужная цепочка из нескольких независимых вызовов jQuery.
- .значение не является методом jQuery (это метод DOM)
Ответ №2:
Похоже, вы смешиваете традиционный javascript с jquery. Просто в jQuery вы можете сделать это
$('#thebox').val($('#thebox').val() "TEST");
Кстати, вам также не хватает конечной кавычки в тестовой строке в конце вашего примера.
Кроме того, если вы не используете что-то вроде Chrome debugger или Firebug в Firefox, я предлагаю вам использовать браузер, который может выводить некоторые из этих простых ошибок. Это сэкономит вам много времени и разочарований при просмотре ошибок JavaScript в браузере.
Ответ №3:
Это не работает, потому что в значительной степени все неправильно 🙂
<a href="#" onclick="$('#thebox')[0].value = 'TESTntestnntest'">Add</a>
Нет смысла переходить по DOM по значениям «id», потому что атрибуты «id» в любом случае должны иметь глобально уникальные значения. Таким образом, единственный «идентификатор», о котором вам нужно беспокоиться, — это идентификатор самого <textarea>
элемента.
Ответ №4:
<html><head>
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script></head><body>
<div id="wrapper">
<div id="leftc">
text here
<a href="#" onclick="javascript: $('#thebox').val($('#thebox').val() 'TESTntestnntest')">Add</a>
</div>
<div id="rightx">
<textarea id="thebox" rows="10" cols="50"></textarea>
</div>
</div>
</body></html>
Комментарии:
1. Зачем использовать
#wrapper #rightx #thebox
в качестве селектора вместо#thebox
? Последнее значительно быстрее и столь же точно.2. Вы правы, jfriend00, я просто быстро отредактировал код. Отредактировано снова 😉
Ответ №5:
Вам просто нужно $('#thebox').val('test');
Комментарии:
1. Извините, в этом была опечатка, я пропустил
#
Ответ №6:
Возможно, вы можете попробовать закрыть 'TESTntestnntest
строку дополнительным '
символом.
Комментарии:
1. Да, это важно. Однако вся остальная часть обработчика тоже неверна 🙂