2012-06-06 3 views
0

나는이 같은 클래스 이름을 가진 요소의 다양한 수 :어떻게 숫자 요소를 다양한 대체하기 위해 jQuery를 replaceWith를 사용하는

<p class="test"></p> 
<p class="test"></p> 

내가 같은 클래스 요소의 새로운 세트와 이들 각각을 대체 할 이름,하지만 더 많거나 적은 요소가있을 수 : 나는를 사용하는 경우

<p class="test"></p> 

또는

<p class="test"></p> 
<p class="test"></p> 
<p class="test"></p> 

, 각 요소를 내용으로 대체하므로 그렇게 할 수 없습니다.

이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

EDIT (다른 설명) :

그래서 내가 페이지에서 이러한 요소가 : 그럼

<p class="test"></p> 
<p class="test"></p> 
<p class="test"></p> 

을, 나는 동적으로이 요소의 새로운 세트 (중 다양한 수의)를 검색 같은 클래스 이름 (그리고 어쩌면 다른 클래스 이름들). 예를 들면 다음과 같습니다.

<p class="test classa"></p> 
<p class="test classb"></p> 

위의 예에서 처음 세 개의 요소를 없애기를 원합니다. 그리고 그 자리에 동적으로 검색된 2 개의 <p> 요소가 있어야합니다.

두 세트의 요소 수는 다를 수 있습니다.

은 가정 당신이 당신의 <p>'s 컨테이너로하는

<div id="container"> 
    <p class="test"></p> 
    <p class="test"></p> 
    <p class="test"></p> 
    <p class="test"></p> 
</div> 

당신이 그들을 삭제할 수 있습니다

+1

왜 그들은 같은 수업을해야합니까? 각각에 다른 요소가 있기를 원하면 다른 ID를 사용해야합니다. 또는 jquery로 새 요소를 추가 할 수 있습니다. 나는 당신의 질문을 아주 이해하지 못합니다. 좀 더 설명해 주시겠습니까? 감사합니다 :) –

+0

그들은 그들이 (내가 통제 할 수있는 것이 아닌) 스타일이 주어 졌기 때문에 그들은 같은 수업을 가지고 있습니다. 마크 업을 변경할 권한이 없기 때문에 ID를 추가 할 수 없습니다. 그게 유일한 옵션이라면'.remove()'와'.append()'를 할 수 있었지만 좀 더 우아한 해결책이 궁금했습니다. – fehays

+0

새로운 답변이 추가되었습니다. 어쩌면 도움이 될 것입니다. –

답변

0

루프 업데이트 할 수 배열입니다 , 새 요소를 추가하거나 추가하십시오.

$('p.test').remove(); //Will remove all <p>'s with class test 

요소

var data= { 
    '1': '<p class="newclass">Hello</p>', 
    '2': '<p class="newclass2">Hello2</p>' 
    '3': '<p class="newclass3">Hello3</p>' 
    }; //Could have 100 rows, it wouldn't matter 

$.each(data, function(i,val){ 
     //Do some stuff 
     $('#container').append(val); 
    }); 
+0

그러나 'p.test'선택자에 3 개의 요소가 반환되면 각 요소가 '새 내용'으로 바뀌므로 고마워요. '새로운 콘텐츠'는 'p.test'요소가 될 수 있습니다. 희망이 의미가 있습니다. – fehays

+0

내가 그것을 얻을 수 있는지 보자, 당신은 다른 요소로 요소를 바꾸시겠습니까? 좀 더 설명 할 수 있니? 예제를 사용할 수있는 경우 사용하십시오. –

+0

아니요, 많은 요소를 동적으로 검색되는 새로운 요소 집합으로 바꾸고 싶습니다. 나는 그 질문에 대한 나의 모범이 충분하다고 생각했지만 그것을 업데이트하려고 노력할 것이다. – fehays

0

$ ('p.test')는 당신이 그것을

+1

기술적으로 jQuery 객체가 아니라 배열입니다. –

0

내가 주변 <div>가 그냥 요소의 새로운 세트마다에 그 사업부를 대체 할 것 데이터 배열에 있습니다. 그래서 :

다음
<div id="surround"> 
    <p class="test"></p> 
    <p class="test"></p> 
    <p class="test"></p> 
</div> 

jQuery를 :

$("#surround").replaceWith('new content'); 
+0

주변 div를 추가 할 수 없도록 마크 업을 변경할 권한이 없습니다. / – fehays