текстовая область на javascript не работает

#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';
  

У вас возникли следующие ошибки:

  1. Ошибки в кавычках
  2. Недопустимая и ненужная цепочка из нескольких независимых вызовов jQuery.
  3. .значение не является методом 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. Да, это важно. Однако вся остальная часть обработчика тоже неверна 🙂