Цикл, чтобы найти метку, затем изменить текст - PullRequest
0 голосов
/ 27 июля 2011

У меня есть следующая разметка, генерируемая 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>

Мне нужно заменять текст метки всякий раз, когда присутствует «Размер».Я пробовал различные коды ... такие как:

$('.productOptionsBlock .blk span label').each(function() {
    if ($(this).('label:contains("Size")').length > 0) {
        $(this).replaceWith('<span>Alternative text</span>');
    }
});

Но я не могу заставить замену работать.Я путаюсь с использованием $(this) и с тем, как прикрепить содержимое ярлыка ...

Ответы [ 2 ]

3 голосов
/ 27 июля 2011

Нет необходимости в цикле для этой задачи, вы просто применяете то же самое к селектору:

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

Проверьте демонстрацию

1 голос
/ 27 июля 2011

$(this).('label:contains("Size")') ничего не делает.

Возможно, вы имели в виду:

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

Вам не нужен явный цикл, хотя:*

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...