jQuery Обернуть страйк после, Добавить или Регулярно? - PullRequest
1 голос
/ 29 апреля 2011

Я хочу добавить страйк-тег через ПРОСТО символы цены тега шрифта с классом «specialprice».Трудно из-за того, что код настроен на ТОЛЬКО получить цену, а не текст перед ней:

Что если бы я мог обернуть все в ударе в 'specialprice' ПОСЛЕ font.colors_text или NOT font.colors_text, что-нибудь подобное?

У меня есть это:

<font class="pricecolor colors_productprice specialprice">
   <font class="text colors_text">
      <b>Regular Price:<br></b>
   </font>
   $2,492<sup>.38</sup>
</font>

Я хочу это:

<font class="pricecolor colors_productprice specialprice">
   <font class="text colors_text">
      <b>Regular Price:<br></b>
   </font>
   <strike>$2,492<sup>.38</sup></strike>
</font>

Ответы [ 3 ]

1 голос
/ 29 апреля 2011

В вашем CSS добавьте класс для зачеркивания:

.strike {text-decoration: line-through;}

И в вашем jQuery:

// get all the children of pricecolor, filter out the colors_text children,
// and wrap the span of price around them
$(".pricecolor").contents().each(function() {
    if(!$(this).is(".colors_text")) {
        $(this).wrap("<span class='price'>");
    }
});

$(".price").addClass("strike");

Для выбора цены зачеркните, что вы можете использоватьID, присваивая каждой цене уникальный идентификатор, если у вас много цен на странице.

0 голосов
/ 29 апреля 2011

Из-за несоответствий между браузерами при доступе к дочерним элементам вы можете использовать вместо этого Regex:

$(".specialprice").html($(".specialprice").html().replace(/<\/font>(.*<\/sup>)/i, "</font><strike>$1</strike>"));
0 голосов
/ 29 апреля 2011

jQuery.wrap - это то, что я бы использовал, если не могу изменить HTML для начала.

Попробуйте (не проверено)

Сначала получите все части, которые должны быть поражены, затем используйте .wrap($("<strike></strike>")) для элементов.

var list = $("span.pricecolor").children();
list.not(list.first());
list.wrap($("<strike></strike>"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...