2012-05-04 6 views
1

등록 된 상표 기호 "®"가 많이 사용되는 사이트가 있습니다. 이 기호는 주변 텍스트와 동일한 크기로 렌더링됩니다. 더 작고 위 첨자로 표시해야하기 때문에 jQuery를 사용하여 페이지에서 "®"의 모든 인스턴스를 찾고 "<span class="reg-mark">®</span>"으로 바꿉니다. 이렇게하면 해당 문자의 표시 스타일을 지정할 수 있습니다.jQuery를 사용하여 텍스트 바꿔 넣기 이미지 바꾸기

내가 검색에 다음 코드를 사용하여 대체하고 있습니다 :

<script type="text/javascript" charset="utf-8"> 
    $(document).ready(function() { 
     var strNewString = $('body').html().replace(/®/g,'<span class=\"reg-mark\">®</span>'); 
     $('body').html(strNewString); 
    }); 
</script> 

이 성공적으로의 모든 인스턴스를 대체 "®"나는 그들에게 내가 원하는 방식으로 스타일을 할 수 있도록.

그러나 이미지의 표시를 손상시키는 태그의 'alt'속성에있는 "®"의 인스턴스도 대체합니다.

속성 값을 건너 뛰는 동안이 검색을 수행하고 바꿀 수있는 방법이 있습니까?

감사합니다, PJ

+2

등록 표시 기호가 우주의 좋은 덩어리와 호환되지 않습니다 윈도우 1251 캐릭터 세트의 일부이기 때문에 당신은 ®로 대체되어야한다. –

+2

전체 본문이 아닌 등록 된 심볼을 포함하고있는 관심있는 요소 (div, p 등)를 반복하는 것이 더 좋지 않습니까? – j08691

답변

0

사용 JQuery와없는 선택. 예를 들어 <img> 태그에 "not"를 지정하십시오. http://api.jquery.com/not-selector/

<script type="text/javascript" charset="utf-8"> 
    $(document).ready(function() { 
     var strNewString = $('body:not(img)').html().replace(/®/g,'<span class=\"reg-mark\">®</span>'); 
     $('body').html(strNewString); 
    }); 
</script> 
+0

예를 들어 설명해 주시겠습니까? – j08691

4
$('div, p, a, h1, h2, h3').filter(":contains('®')").each(function(){ 
    $(this).html($(this).html().replace('®', '<span class="reg-mark">®</span>')); 
}); 

DEMO

+0

어디에서 alt? –

+0

@RoyiNamir, 이것은 ALT 속성을 변경하지 않을 것입니다. OP가 요구 한 바로 그 것입니다. 알 수 있듯이 ('anchor alt' attr을 검사하면 - 변경되지 않습니다.) –

+0

멋집니다. +1 ........ –

1

I 날카로운 브래킷

사이 eG에가되도록 ®을 필요 정규식 갈 것이다/(> [^ <] ) ® ([^ <] <)/

그러면 새 파트에 새 파트를 삽입하고 새 파트에 3을 연결할 수 있습니다.

그러나 이것은 HTML 괄호 안에있는 발생과 일치합니다. 어떤 종류의 속성에서 텍스트를 일치 시키려면이 방법이 효과가 없습니다.

0
<script type="text/javascript" charset="utf-8"> 
    $(document).ready(function() { 
     var strNewString = $('body:not(img)').html().replace(/®/g,'<span class=\"reg-mark\">®</span>'); 
     $('body').html(strNewString); 
    }); 
</script> 

나는 그렇게 할 것이라고 생각합니다. BODY에있는 모든 "@"을 찾아야하지만 IMG 태그에서 건너 뜁니다. ALT 태그에 집중할 수있는 선택기도 있습니다. 예컨대 :

$('img[alt="@"]')