2012-08-10 1 views
0

:<span></span>을 제거한 다음 jQuery를 사용하여 <span>을 추가 할 수 있습니까? 나는 테두리 색상 변경하려면 다음 코드를 사용하고

$("#input_" + type + "_" + row).css("border-color", "black") 

내가 먼저 제거 할 수있는 방법을 어떤 <span></span> (있는 경우)를 직접 내 입력을 다음 다음 다음을 추가한다 :

<span class="check-ok"></span> 

주 처음 입력 한 직후 스팬이없는 경우에도 작동해야합니다.

+0

'span'를 제거하고 다시 다른 추가의 목적은 무엇인가? 그 'span'의 클래스를 변경하는 것이 전적으로 존재 하는가, 아니라는 것입니까? – RobB

+0

제 문제는 제거하거나 제거하는 방법이 확실치 않거나 그렇지 않을 경우 작동시키는 것입니다. – Alan2

+0

@RobB - 문제는 처음에는 범위가 없다는 것입니다. 입력 유효성 검사가 완료된 후에 만 ​​범위가 있습니다. 따라서 처음에는 변경할 것이 없습니다. – Alan2

답변

4

그냥 .next[docs]를 사용

$("#input_" + type + "_" + row) 
    .next('span').remove().end() 
    .after('<span class="check-ok"></span>'); 

을 더 span이없는 경우, .next 모든 요소를 ​​선택하지 않으며 .remove()는 아무것도하지 않습니다. 이 연속 span 요소 여러이고, 당신이 그들 모두를 제거하려면

, 당신은 .nextUntil[docs] 사용할 수 있습니다

$("#input_" + type + "_" + row) 
    .nextUntil(':not(span)').remove().end() 
    .after('<span class="check-ok"></span>'); 
+0

입력 직후에 스팬이없는 경우이 작업을 수행 할 수 있습니까? 하나의 입력 (스팬의 유무에 관계없이)과 스팬 (span)을 가진 다른 입력이있을 것이므로 걱정됩니다. 내가 유효성을 검증 한 입력의 일부가 아니라면 다음 것을 제거하고 싶지 않습니다. – Alan2

+0

'.next'는 ** 그것이 선택자와 일치하는 경우에만 ** 다음 형제를 선택합니다. 다음 요소가'input' 요소라면,'.next ('span')'은 그것을 선택하지 않을 것입니다. 문서를 읽는 것 말고는 이것만으로도 스스로 시험해 볼 수 있습니다. –

관련 문제