Получить значение textarea в элементе div в JQUERY - PullRequest
0 голосов
/ 17 октября 2011

У меня есть несколько элементов div, где внутри каждого тега div есть другие элементы формы.Например:

<div id="div1"><input type="text" name="answer" id="answer"></div>
<div id="div2"><textarea name="answer" id="answer">Some Value</textarea></div>
<div id="div3"><textarea name="answer" id="answer">Some Value</textarea></div>

Как я могу получить текстовую область только для div3.Вот что у меня есть, но я всегда получаю только текстовую область div2

var divElement = dojo.byId('div3');
if ($('textarea', divElement).length > 0){
    var text = $('textarea#answer').val();
}

Help!

Ответы [ 3 ]

1 голос
/ 17 октября 2011

Попробуйте следующий селектор

var value = $('#div3 textarea').val();
alert(value); 

Примечание. Ваше решение использует повторяющиеся значения id для текстовой области и входных тегов.Недопустимо иметь несколько идентификаторов, и это приведет вас к боли в будущем.Было бы лучше изменить ваши теги, чтобы иметь уникальные идентификаторы, а затем запросить их напрямую.Например

HTML:

<div id="div1"><input type="text" name="answer" id="answer1"></div>
<div id="div2"><textarea name="answer" id="answer2">Some Value</textarea></div>
<div id="div3"><textarea name="answer" id="answer3">Some Value</textarea></div>

Javascript

var value = $('#answer3').val();
alert(value); 
0 голосов
/ 17 октября 2011

хорошо, вы присвоили одинаковые идентификаторы 3 элементам, что не является хорошей практикой.Каждый элемент должен иметь уникальный идентификатор.Если вы присвоили один и тот же идентификатор, вы всегда получите первый элемент из своего кода.
Если вы хотите получить текстовую область div 3, используйте следующий селектор:

$('#div3 textarea).val()
0 голосов
/ 17 октября 2011
var firstTextarea = $('#div3').find('textarea :first').val();
...