我需要检查每个函数中特定的div id内容是否为空。如果div内容为empy,我想在此处输入“请单击此处以添加图像”文本消息。但是我的代码没有用。
我有一个类似这样的html:
<div class="wrapper">
<div class="list">
<div class="item"><div id="image">image</div></div>
<div class="item"><div id="test">test</div></div>
<div class="item"><div id="image"></div></div>
<div class="item"><div>test</div></div>
<div class="item"><div id="image"><a href="test.html"><img src="https://via.placeholder.com/100x75.png"></a></div></div>
</div>
</div>
我该怎么做:
<div class="wrapper">
<div class="list">
<div class="item"><div id="image">Please click to here for add a image</div></div>
<div class="item"><div id="test">test</div></div>
<div class="item"><div id="image">Please click to here for add a image</div></div>
<div class="item"><div>test</div></div>
<div class="item"><div id="image"><a href="test.html"><img src="https://via.placeholder.com/100x75.png"></a></div></div>
</div>
</div>
我的Jquery:
$(document).ready(function(){
$(".list #image").each(function() {
if($(this).is(':empty')) { $(".item #image").html("Please click to here for add a image"); }
});
});
我的jsfiddle代码在这里: https://jsfiddle.net/nmw4bad6/
答案 0 :(得分:1)
您的代码中存在多个问题
class
对多个元素进行分组。$(".item #image").html(..)
)个元素来更新所有元素(即使当前代码中不会选择)。要使其工作,请使用类对元素进行分组,然后使用:empty
pseudo-class selector获取空元素。实际上,您无需使用each()
方法,因为您要更新具有相同内容的所有元素。
$(document).ready(function() {
$(".list .image:empty").html("Please click to here for add a image");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="wrapper">
<div class="list">
<div class="item">
<div class="image">image</div>
</div>
<div class="item">
<div id="test">test</div>
</div>
<div class="item">
<div class="image"></div>
</div>
<div class="item">
<div>test</div>
</div>
<div class="item">
<div class="image">
<a href="test.html"><img src="https://via.placeholder.com/100x75.png"></a>
</div>
</div>
</div>
</div>
更新::如果您无权访问后端代码并且需要使用重复的ID,请使用attribute equals selector而不是id selector并执行相同的操作。
$(document).ready(function() {
$('.list [id="image"]').html("Please click to here for add a image");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="wrapper">
<div class="list">
<div class="item">
<div id="image">image</div>
</div>
<div class="item">
<div id="test">test</div>
</div>
<div class="item">
<div id="image"></div>
</div>
<div class="item">
<div>test</div>
</div>
<div class="item">
<div id="image">
<a href="test.html"><img src="https://via.placeholder.com/100x75.png"></a>
</div>
</div>
</div>
</div>
答案 1 :(得分:0)
$(document).ready(function(){
$(".list #image").each(function() {
if($(this).html()=="") { $(this).html("Please click to here for add a image"); }
});
});
您还可以像下面那样更改代码
if($(this).is(':empty')) { $(this).html("Please click to here for add a image"); }
答案 2 :(得分:0)
我刚刚修改了您的代码,以便您获取结果。
$(document).ready(function(){
$(".list > .item").each(function() {
var tag = $(this).children('#image');
if(tag.length)
{
if(tag.html().length===0)
{
tag.html('Please click to here for add a image');
}
}
});
);