性格いい人が優勝

下記について、それぞれJavaScriptとjQueryではどう書くのでしょうか?
・次の要素が「input type text」だったら「input type text」を削除
・次の要素が「input type hidden」だったら「input type hidden」を削除

※次の要素が「指定した要素」だった場合のみ削除したい、という主旨です

A 回答 (2件)

「次の要素」というのが「次の兄弟要素」という意味で良ければ、基準とするelementに対して


 element.nextSibling
で取得可能です。
自分の子要素を意味する場合は、「最初の子要素」ということでしょうから
 element.firstChild
で取得してください。

いずれの場合もinput要素とは限りませんので、「最初に現れるinput要素」という意味であるなら、
順次チェックしていって、最初のものを特定すれば宜しいかと。
(存在しない場合の処理もお忘れなく)

要素がinputであることの確認は、element.nodeName又はelement.tagNameなどで要素名が取得できます。
また、typeのチェックはelement.typeでtypeが取得できますので、チェック可能でしょう。

削除する場合は、対象elementに対して、
 element.parentNode.removeChild(element);
で削除できます。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
参考になりましたー

お礼日時:2014/12/26 10:23

ごめん、状況をはっきりさせてほしい。



(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'」だったら、というセレクタ条件分岐方法を知りたいです

補足日時:2014/12/21 09:35
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!