2011-05-02 2 views
0

클래스 'priceis'에 'strike'클래스를 추가하고 싶습니다. 'specialprice'클래스가 존재합니다. 현재는 페이지에 나타나는 모든 요소가 아닌 요소의 첫 번째 요소에만 적용됩니다. 클래스 'specialprice'로 모든 요소를 ​​확인해야합니다.jQuery addClass를 클래스가있는 모든 요소

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

$('.specialprice').find('.priceis').addClass('strike'); 
+1

'priceis'클래스에는 요소가 없습니다. 나는'id = "priceis"가'class = "priceis"'이어야한다고 가정합니다. –

+0

''대신'class' 여야합니다. 이드를 대신해'# priceis'가 필요합니다. – BrunoLM

+0

정확합니다. 코드 – ToddN

답변

5

귀하의 HTML 당신은 아마 class 대신 id 설정하는 의미

<span id="priceis"> 

잘못된 것입니다.

Your current code will work if you fix your HTML.

<span class="priceis"> 
당신 수도 want to see this answer ,는 DOM 요소 전에 포함 할 때 스크립트가 작동하지 않는 이유를 설명합니다.

+0

을 수정했습니다. 수정 된 첫 번째 'specialprice'에만 표시됩니다. – ToddN

+2

@ToddN이 스크립트는 어디에 실행됩니까? '$ (document) .ready'? 최소한 모든 DOM 노드가 렌더링 된 후에 실행해야합니다. 모든 요소 뒤에 스크립트를 넣으십시오. – BrunoLM

+0

빙고! 너는 그것을 가지고있다, 그것은 문서에 정확성을 두지 않았다. 내 현재 코드가 실제로 제대로 작동합니다, 감사합니다! – ToddN

1
$('.priceis').each(function(i, item) { 

    var $item = $(item); 

    if($item.hasClass('specialprice') || $item.parents('.specialprice')) 
    { 
     $item.addClass('strike'); 
    } 

}); 
4

$('.specialprice.priceis').addClass('strike');?

+0

이것은 작동하지 않았다 – ToddN

+0

그것은 단 하나 종류 및 그것의 간단한 동안 작동한다. –

0

이 시도 :이 같은

$('.specialprice').has('.priceis').addClass('strike'); 
+0

'price_'뿐만 아니라 'specialprice'로 'strike'클래스를 추가했습니다. – ToddN

+0

@ToddN, 무슨 뜻인지 모르겠다. – Neal

5

어쩌면 뭔가를? 아직 .. 명확하지 귀하의 질문에 대한 설명, 확실하지

$(function() { 
    $('.specialprice').each(function() { 
    $(this).find('.priceis').addClass('strike'); 
    }); 
} 

편집 : 그냥 어쩌면 실현이처럼 싶어?

$('.specialprice').each(function() { 
    $(this).find('*').addClass('strike'); 
});