2010-03-23 3 views
0

후 문자열이 처음 occurance에 HTML을 추가하려면 :어떻게 그렇게처럼 HTML이 선택한 요소

<div class=foo> 
    (<a href=forum.example.com>forum</a>) 
    <p> 
    Some html here.... 
</div> 

그리고, 첫 번째 후 다른 링크를 삽입과 같이 할 :

<div class=foo> 
    (<a href=forum.example.com>forum</a>) <a href=blog.example.com>blog</a> 
    <p> 
    Some html here.... 
</div> 

()로 묶여 있기 때문에 ...하지만 난 사용할 수 없습니다

$('div.foo a:first').append(' <a href=blog.example.com>blog</a>'); 

...앞에 넣으 것이다.

그렇다면 ) 글자를 선택하기 위해 jQuery를 확장하거나 다른 솔루션을 사용해야합니까?

답변

2

당신도 일치하고 전체 (<a />) 문자열을 교체하거나 전부 주변에 다른 요소를 (예 : 스팬)을 배치 할 수 있습니다.

<span>(<a href=forum.example.com>forum</a>)</span> 

추가로 기존 앵커 내부에 새 앵커 태그를 삽입합니다. 당신은 아마 당신이 찾고있는 찾을 수 after()

+0

'after()'관련 수정 – user191688

1

다음 <p> 태그를 선택하고 링크 (실제로 ... before 방법 사용)를 추가 할 수 있습니까?

$('div.foo a:first').next('<p>').before(' <a href=blog.example.com>blog</a>'); 
0

하나의 정규 표현식으로 XML/HTML을 (특히 신뢰할 수없는/illformatted)를 수정,하지만 안 당신은 정말 필사적 경우 :

var container = $('div.foo'); 
var append = '<a href="...">...</a>'; 
var html = container.html(); 
var replaced = html.replace(/\(<a [^\)]+\)/, "$& " + append); 
container.html(replaced); 

참고 위의 그 a- 태그 안에 ")"문자가 있으면 실패합니다.

관련 문제