- ベストアンサー
次の要素が「input type」だったら削除
下記について、それぞれJavaScriptとjQueryではどう書くのでしょうか? ・次の要素が「input type text」だったら「input type text」を削除 ・次の要素が「input type hidden」だったら「input type hidden」を削除 ※次の要素が「指定した要素」だった場合のみ削除したい、という主旨です
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
「次の要素」というのが「次の兄弟要素」という意味で良ければ、基準とするelementに対して element.nextSibling で取得可能です。 自分の子要素を意味する場合は、「最初の子要素」ということでしょうから element.firstChild で取得してください。 いずれの場合もinput要素とは限りませんので、「最初に現れるinput要素」という意味であるなら、 順次チェックしていって、最初のものを特定すれば宜しいかと。 (存在しない場合の処理もお忘れなく) 要素がinputであることの確認は、element.nodeName又はelement.tagNameなどで要素名が取得できます。 また、typeのチェックはelement.typeでtypeが取得できますので、チェック可能でしょう。 削除する場合は、対象elementに対して、 element.parentNode.removeChild(element); で削除できます。
その他の回答 (1)
- hitomura
- ベストアンサー率48% (325/664)
ごめん、状況をはっきりさせてほしい。 (1)やりたいのは <input type='text' name='text1'> <input type='text' name='text2'> という具合に並んでいた時に一方を削除したい、ということでよろしいでしょうか。 また、上記の通りの場合、削除するのは text1 の方でしょうか、それとも text2 の方でしょうか。 (2)上記の場合は input が 2 個ですが、では 3 個以上あった場合はどのようになってほしいですか。 <input type='text' name='text1'> <input type='text' name='text2'> <input type='text' name='text3'> <input type='text' name='text4'> <input type='text' name='text5'> のときに削除したい input の name を補足願います。
補足
問い合わせありがとうございます。 説明不足でした。 <やりたいこと> ■前提 <p id='target'></p> <input type='text'> <p></p> ・id="target"の次の要素が、「input type='text'」だった場合、削除 ■望む結果 <p id='target'></p> <p></p> ■補足 ・「input type='text'」は一つだけ。並ばない前提 ・name属性は動的変化予定なので、セレクトする際は使用しない ■特に知りたいこと ・次の要素が「input type='text'」だったら、というセレクタ条件分岐方法と、 ・次の要素が「input type='hidden'」だったら、というセレクタ条件分岐方法を知りたいです
お礼
回答ありがとうございました。 参考になりましたー