JQuery判断DIV中是否包含图片标签
JQuery判断DIV中是否包含图片标签,如果包含就把整个DIV的内容替换为第一张图片,否则就清空这个DIV,希望大侠们能给帮忙!!...
JQuery判断DIV中是否包含图片标签,如果包含就把整个DIV的内容替换为第一张图片,否则就清空这个DIV,希望大侠们能给帮忙!!
展开
5个回答
展开全部
$('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";
},
展开全部
先判断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的库文件。没有测试,应该可以。
你的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?哥只会手写代码。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
var $div=$('#divId'),$imgs = $div.find('img');
if($imgs.length>0)$div.html($($imgs[0]));
else $div.remove();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询