0

div 要素に img タグがまだない場合、img タグを div 要素の先頭に追加しようとしています。使用する最良の方法は何ですか? JavaScriptとjqueryの両方で答えを見たいので、学習に役立ちますが、どちらでもかまいません。

.not() と .empty() を使用していくつかの jquery を試みましたが、それについて正しく考えていないと感じています。

4

5 に答える 5

3

さて、あなたは素晴らしい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コードとほぼ同じくらい短いです。

于 2013-03-21T08:09:16.730 に答える
3

これを試して:

if($('#your_div').find('img').length==0){
   $('#your_div').prepend('<img src="img/your_image.jpg" />');
}

デモ

于 2013-03-21T08:00:21.210 に答える
2
if ($("#myId img").length === 0) {
    $("#myId").append("<img src=\"https://www.google.com/images/srpr/logo4w.png\" />");
}

jQueryの長さを使用する

純粋な JavaScript ソリューションを気にしないでください。不必要に複雑になり、ブラウザ間の非互換性が発生する可能性があります。

于 2013-03-21T08:03:35.217 に答える
1

使用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)
};
于 2013-03-21T08:02:27.543 に答える