2012-09-03 1 views
1
$("#" + mainContent).children("span").replaceWith(function(){ return $(this).text(); }); 

위의 코드 줄을 사용하면 모든 범위를 텍스트 값으로 바꿀 수 있습니다.jQuery Selctor, 전체 범위 DIV 내

HTML은

<div id="bla" contenteditable="true"> 
<span> bla finds this one</span> 
    <div> 
     <span> doesnt find me </span> 
    </div> 
</div> 

어떻게 내가 "즐"사업부 내의 모든 스팬을 선택하고 그들 모두를 교체하는 것 같습니다? (가) 단지 doenst 찾아 작품을 교체

..

답변

2

당신은 시도 할 수 있습니다 :

$('span',"#" + mainContent).each(function(){this.html('Something Different')}) 

가 너무로 교체하려고하는지에 따라 다릅니다.

+0

매개 변수의 방향이 잘못되어 OP가 콘텐츠뿐만 아니라 전체 요소를 대체하려고합니다. –

+1

@Felix - 고마워요. 때로는 내 인생이 거꾸로 느껴진다. :-) –

1

사용 .find() 대신 .children()의 :

$("#" + mainContent).find("span").replaceWith(function(){ return $(this).text(); }); 
3

jQuery를의 children() 기능은 바로 아이들을 일치합니다. DOM 구조의 경우 선택자와 일치하는 <div>의 직계 하위 요소 인 하나의 <span> 요소 만 있습니다. 선택자와 일치하는 요소의 계층 구조 아래에있는 모든 요소를 ​​찾으려면 find()을 사용하여 계층 구조를 검색해야합니다. 그렇지 않으면 선택자를 수정해야합니다.

$('div span') div 하위의 모든 span과 DOM 계층의 모든 span을 일치시킵니다.

$('div > span')는 DOM에있는 div의 모든 즉시 스팬 하위 항목과 일치합니다.