循环查找标签,然后更改文本

时间:2011-07-27 15:55:00

标签: jquery replace label

我有一个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)以及如何附加标签内容感到困惑......

2 个答案:

答案 0 :(得分:3)

无需为此任务循环,只需将相同的内容应用于选择器:

$('.productOptionsBlock .blk span label:contains("Size")').replaceWith('<span>Alternative text</span>');

Check a demo

答案 1 :(得分:1)

$(this).('label:contains("Size")')没有做任何事情。

也许你的意思是:

if ($(this).is('label:contains("Size")')) {

您不需要显式循环:

$('.productOptionsBlock .blk span label:contains("Size")')
   .replaceWith('<span>Alternative text</span>');