JQuery判断DIV中是否包含图片标签

JQuery判断DIV中是否包含图片标签,如果包含就把整个DIV的内容替换为第一张图片,否则就清空这个DIV,希望大侠们能给帮忙!!... JQuery判断DIV中是否包含图片标签,如果包含就把整个DIV的内容替换为第一张图片,否则就清空这个DIV,希望大侠们能给帮忙!! 展开
 我来答
黑爪
推荐于2017-06-23 · TA获得超过297个赞
知道小有建树答主
回答量:190
采纳率:100%
帮助的人:144万
展开全部

$('div').find('img').replaceWith('替换内容');


其实我这个写法是个错误的逻辑,因为我没写判断图片标签.


但是,这个写法完全可以做到你想要的效果.因为jquery的一些运行机制表明如果find('img')找不到图片标签,其后代码就会终止运行,因为其传递到后续方法的参数是undefind而不是必须的obj.


详细请看下面jquery的源码.


//这是替换方法,可以看到jquery内部会判断传递过来的值;
replaceWith: function( value ) { 
  if ( !isDisconnected( this[0] ) ) {
     if ( jQuery.isFunction( value ) ) {//这里判断;
  return this.each(function(i) {
  var self = jQuery(this), old = self.html();
self.replaceWith( value.call( this, i, old ) );
});
}

//判断方法:可以看到这里当参数传递到这里时如果不符合标准将会返回假,其下代码不执行.
//所以如果只是单纯的判断div里有没有图片标签并不需要另外写判断代码.
isFunction: function( obj ) {
return jQuery.type(obj) === "function";
},

type: function( obj ) {
return obj == null ?
String( obj ) :
class2type[ core_toString.call(obj) ] || "object";
},
wxqlgd
2013-08-12 · TA获得超过7025个赞
知道小有建树答主
回答量:415
采纳率:0%
帮助的人:327万
展开全部
先判断div中:
你的div应该有ID吧。
var divId = document.getElementById("divId");
var imgAll="";
if(divId.getElementsByTagName("img")!=null){
imgAll = divId.getElementsByTagName("img");
divId.innerHTML=imgAll[0].innerHTML;//将div内容替换为第一张图片

}else{
$("#divId").empty();//否则就清空这个div.

}
这里我用jquery跟js混搭着来写,你应该能看懂,加上jquery的库文件。没有测试,应该可以。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-12
展开全部
使用Jquery选择器 方法应该这样写.~$('div').find('img').length>0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-12
展开全部
哥不会JQuery,如果你已经获得div对象,何不判断下div.getElementsByTag("img").length是否大于0?哥只会手写代码。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友45ec25c
2017-06-23 · 超过30用户采纳过TA的回答
知道答主
回答量:126
采纳率:80%
帮助的人:27.6万
展开全部
var $div=$('#divId'),$imgs = $div.find('img');
if($imgs.length>0)$div.html($($imgs[0]));
else $div.remove();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式