div 要素に img タグがまだない場合、img タグを div 要素の先頭に追加しようとしています。使用する最良の方法は何ですか? JavaScriptとjqueryの両方で答えを見たいので、学習に役立ちますが、どちらでもかまいません。
.not() と .empty() を使用していくつかの jquery を試みましたが、それについて正しく考えていないと感じています。
div 要素に img タグがまだない場合、img タグを div 要素の先頭に追加しようとしています。使用する最良の方法は何ですか? JavaScriptとjqueryの両方で答えを見たいので、学習に役立ちますが、どちらでもかまいません。
.not() と .empty() を使用していくつかの jquery を試みましたが、それについて正しく考えていないと感じています。
さて、あなたは素晴らしいjQueryソリューションを持っているので、純粋なJSバージョンを提案します。
var div = document.getElementById('div');
if (!div.querySelector('img')) {
var img = document.createElement('img');
img.src = 'image.png';
div.insertBefore(img, div.firstChild);
}
テスト: http: //jsfiddle.net/9V2HR/
ご覧のとおり、この場合、バニラJSはjQueryコードとほぼ同じくらい短いです。
これを試して:
if($('#your_div').find('img').length==0){
$('#your_div').prepend('<img src="img/your_image.jpg" />');
}
if ($("#myId img").length === 0) {
$("#myId").append("<img src=\"https://www.google.com/images/srpr/logo4w.png\" />");
}
純粋な JavaScript ソリューションを気にしないでください。不必要に複雑になり、ブラウザ間の非互換性が発生する可能性があります。
使用length
とタグ...はいfind
、前に追加します..いいえ、他のものを行いますimg
jqueryの使用
if($('#divID').find('img').length > 0) {
//img present so do other stuff
}else{
var img=$('<img />',{src:"imgsrc.jpg"});
$('#divID').prepend(img)
};