0

如果 div 元素还没有 img 标签,我正在尝试将 img 标签添加到 div 元素。最好的使用方法是什么?我想在 javascript 和 jquery 中都看到答案,所以它会帮助我学习,但任何一个都可以。

我已经使用 .not() 和 .empty() 进行了一些 jquery 尝试,但我觉得我没有正确考虑它。

4

5 回答 5

3

尝试这个:

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

演示

于 2013-03-21T08:00:21.210 回答
3

纯 javascript 不如 JQuery 优雅

var imgexists = false;
for (var i = 0; i < mydiv.children.length; i++) {
    if (mydiv.children[i].tagName.toLowerCase() == "img") {
        imgexists = true;
        break;
    };
};

if (!imgexists) {
    var img = document.createElement("img");
    img.src = "some/path.png";
    if (mydiv.children.length > 0) {
        mydiv.appendChild(img, mydiv.firstChild);
    } else {
        mydiv.appendChild(img);
    };
};
于 2013-03-21T08:07:59.167 回答
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/

如您所见,在这种情况下,vanilla JS 几乎与 jQuery 代码一样短。

于 2013-03-21T08:09:16.730 回答
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和标签...是findimg预先...不做其他的东西

使用 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 回答