我有一个CMS生成以下标记:
<div class="product">
<div class="blk">
<span>
<br>
<label>Size</label>
<select onchange="" name="">
</span>
<span>
<br>
<label>Colour</label>
<select onchange="" name="">
</span>
</div>
</div>
每当'Size'存在时,我需要替换标签文本。我尝试了各种代码......例如:
$('.productOptionsBlock .blk span label').each(function() {
if ($(this).('label:contains("Size")').length > 0) {
$(this).replaceWith('<span>Alternative text</span>');
}
});
但我无法让替补工作。我对使用$(this)
以及如何附加标签内容感到困惑......
答案 0 :(得分:3)
无需为此任务循环,只需将相同的内容应用于选择器:
$('.productOptionsBlock .blk span label:contains("Size")').replaceWith('<span>Alternative text</span>');
答案 1 :(得分:1)
$(this).('label:contains("Size")')
没有做任何事情。
也许你的意思是:
if ($(this).is('label:contains("Size")')) {
您不需要显式循环:
$('.productOptionsBlock .blk span label:contains("Size")')
.replaceWith('<span>Alternative text</span>');