やりたいこと
document.querySelectorで、任意の要素を取得したい
困っていること・知りたいこと
document.querySelectorは、指定されたセレクターまたはセレクターのグループに一致する、文書内の最初の Element を返すとのことで、以下のコードの場合、ボタン1の直後のtextareaが選択されてしまいます。
以下のようなHTML構造で、ボタン2の直後のtextareaをdocument.querySelectorで指定する方法が知りたいです。
//html <div class="sample-button1">ボタン1</div> <textarea class="sampe-textarea">任意の文字</textarea> <div class="sample-button2">ボタン2</div> <textarea class="sampe-textarea">任意の文字</textarea>
//jquery // sample-button2をクリックしたら、その直後の.sampe-textareaを取得したい $('#body').on('click','.sample-button2',function(){ var textarea = document.querySelector('.sampe-textarea'); //この書き方では1つ目のtextareaが指定されてしまう。本当は2つ目のtextareaを指定したい var sentence = textarea.value; //textarea内の全文字を取得 alert(sentence); //textarea内の全文字をアラート表示させたい });
試しに、上のコードの
var textarea = document.querySelector('.sampe-textarea');
の部分を、
var textarea = $(this).querySelector('.sampe-textarea');
としてみたり、ベテランの方がみたら笑ってしまうであろうコードをいろいろ試行錯誤してみましたが、エラーの連発でした。textareaごとにclass名を分ければよいのですが、$(this)を使ってどのうにかできないかなと奮闘しております。
上記のコードでいうところの、「ボタン2」の直後のtextareaをquerySelectorで選択する方法をご存じの方がおりましたら、どうかご教授いただければ幸いです。
何卒、よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/23 12:12
2020/09/23 12:24
2020/09/23 12:28
2020/09/23 12:41