原始HTML:
<div class = "a">
<div class="firstNumber">
<span class="spanClass">4</span>
</div>
<div class="secondNumber"> </div>
</div>
<div class = "b">
..."firstNumber" div tag repeats here...
..."secondNumber" div tag repeats here too but might contain content...
</div>
我使用以下代码检查“secondNumber”div标签是否为空。 如果是,那么我想添加“0”包含带有相同“spanClass”名称的span标签 在“secondNumber”div标签内。但它不起作用......
<script>
jQuery(function ($) {
if ($.trim($('.secondNumber').text()).length==0){
$(".secondNumber").wrapInner("<span class="spanClass">0</span>");
};
});
</script>
答案 0 :(得分:2)
试试这个:
$('.secondNumber').each(function(i, el) {
if($(this).find('.spanClass').length == 0) {
$(this).html('<span class="spanClass">0</span>');
}
});
修改强>
$(function() {
$('.secondNumber').each(function(i, el) {
if($(this).find('.spanClass').length == 0) {
$(this).html('<span class="spanClass">0</span>');
}
});
});
答案 1 :(得分:1)
为什么在知道内容为空时使用wrapInner?为什么不:
$(".secondNumber").html('<span class="spanClass">0</span>');
编辑:
此外,看起来你的问题确实不是wrapInner(虽然我仍然认为.html()更好),而是你的引用阻碍了。看看我的例子。我在外面有单引号。你有两组双引号,如果你不逃避内部引号组,它们将相互争用。
答案 2 :(得分:0)
您的代码中存在语法错误,您应该对class属性使用单引号。
jQuery(function () {
var $second = $('.secondNumber'); // caching the object
if ( $.trim($second.text()).length == 0 ){
$second.wrapInner("<span class='spanClass'>0</span>"); // or $second.append("...")
// -----^
};
});