2012-02-02 5 views
0
var body = 'Alex, <a href="blah" title="jason">Jason</a>, Kate, how are you?"; 

JQuery를 사용하여 본문에서 앵커 요소를 제거한 다음 앵커 다음에 쉼표가 있으면 제거하십시오. 참고 : 쉽게하기 위해 쉼표는 항상 중간에 다른 문자가없는 앵커 다음에옵니다.JQuery에서 요소를 제거한 후 쉼표를 제거하려면 어떻게해야합니까?

+0

이것은 실제로 HTML에서 정규 표현식을 사용하는 것이 드문 경우 중 하나 일 수 있습니다 ... – Alnitak

+0

앵커의 _contents_를 그대로두고 싶습니까? – Alnitak

답변

1

나는 앵커의 내용을 제거하고 싶다고 (문법상의 일관성을 유지하기 위해) 가정하고 있습니다. 그런 다음

body = '<div>' + body + '</div>' 

을 :

다음
var body = 'Alex, <a href="blah" title="jason">Jason</a>, Kate, how are you?'; 
body = body.replace(/(<\/a>),/g, '$1') 

jQuery를 사용하면 요소로 묶어야 할 필요가 문자열에서 작동 할 수 있도록 첫째

는 쉼표 제거하기 위해 정규 표현식을 사용하여 실제로 소자를

body = $(body).children('a').remove().end().html(); 

NB를 제거 할 수있다 : 위의 코드 알 제거 l<a> 요소는 텍스트 내에 있지만 다른 HTML 요소는 그대로 둡니다.

0

그런 요소를 제거 할 생각이라면 그 (것)들을 "떨어져 표를하는"무언가에 넣어 두는 것이 좋습니다. 당신은 "Jason"이라는 이름이 쉼표 대신에 붙어 있다는 말을하고 있습니다. 예컨대 :

var body = 'Alex, <span class="name"><a href="blah" title="jason">Jason</a>,</span> Kate, how are you?"; 

그런 다음 당신이 좋아하는 뭔가를 할 수 JQuery와에 제거하기 :

$('a').click(function(){ $(this).closest('.name').remove(); }); 

이 그것을 할 수있는 가장 좋은 방법입니다, 당신은 어떤 텍스트 요소에 중요한 것이 무엇인지를 제어 할 수 있습니다 주로 때문입니다. 정규식 또는 다음 단일 문자를 제거하는 몇 가지 방법이 예제에서 작동하지만 문장을 확장하려는 경우 어떻게됩니까? 예 : 'Alex, <a href="blah" title="jason">Jason</a> (the farmer's son), Kate, how are you?'.

관련 문제