【同じセレクタ】なぜか最初に書いたメソッドしか発火しなかった
同じ要素内にあるテキストと画像をjQueryで変更するメソッドを書いたが、なぜか最初に書いたテキスト変更のメソッドしか発火しなかった。
HTML
<div id="id">
テキスト変更前
<img src="image1.png" alt="">
</div>
jQuery
<script>
$("#id").text('テキスト変更後');
$("#id").children('img').attr('src','image2.png');
</script>
修正:正常に動いたコード
HTML
<div id="id">
<p>テキスト変更前</p>
<img src="image1.png" alt="">
</div>
jQuery
<script>
$("#id").children('p').text('テキスト変更後');
$("#id").children('img').attr('src','image2.png');
</script>
原因
#idの要素が全て「テキスト変更後」に上書きされ、imgタグが消滅した模様。
テキストもpタグで囲み、pタグ部分のテキストを変更するようにjQueryで指定したら解決した。