在jQuery中插入带有内容的标记,该标记位于空标记中

原始HTML:

4
..."firstNumber" div tag repeats here... ..."secondNumber" div tag repeats here too but might contain content...

我使用以下代码来检查“secondNumber”div标签是否为空。 如果是,那么我想在“secondNumber”div标签内添加带有span标签的“0”,其中包含相同的“spanClass”名称。 但它不起作用……

  jQuery(function ($) { if ($.trim($('.secondNumber').text()).length==0){ $(".secondNumber").wrapInner("0"); }; });  

试试这个:

 $('.secondNumber').each(function(i, el) { if($(this).find('.spanClass').length == 0) { $(this).html('0'); } }); 

编辑

 $(function() { $('.secondNumber').each(function(i, el) { if($(this).find('.spanClass').length == 0) { $(this).html('0'); } }); }); 

为什么在知道内容为空时使用wrapInner? 为什么不:

 $(".secondNumber").html('0'); 

编辑:

此外,看起来你的问题确实不是wrapInner(虽然我仍然认为.html()更好),而是你的引用阻碍了。 看看我的例子。 我在外面有单引号。 你有两组双引号,如果你不逃避内部引号组,它们将相互争用。

您的代码中存在语法错误,您应该使用class属性的单引号。

 jQuery(function () { var $second = $('.secondNumber'); // caching the object if ( $.trim($second.text()).length == 0 ){ $second.wrapInner("0"); // or $second.append("...") // -----^ }; }); 

http://jsfiddle.net/MKE4T/