2011-01-25 2 views
0

DOMjQuery : 하나의 요소 다음에 무언가를 추가하는 방법?

<div id="a"> 
    <div id="b"></div> 
<div> 

<p>Insert me after #b</p> 

요구는 '#B'후 삽입 P 태그이며, 삽입 작업이 다시 나타날 경우, 대신에 단지 더 첨가 p 태그를 교체한다.

function insertP(html) 
{ 
    var a = $("#a"); 
    var p = a.find("p") 
    if(p.length == 0) 
    { 
     p = $("<p></p>").appendTo(a); 
    } 
    p.html(html) 
} 

답변

2

이 #A 내에서, #B 후 직접 삽입하지만, 이미 존재하는 경우, 그것은 늘 다시 삽입 : 당신의 도움이

2

에 대한

덕분에이보십시오.

$(document).ready(function(){ 
    if ($('#newP').length == 0) { 
    $('#b').append('<p id="newP">Insert me after #b</p>') 
    } 
}); 
+0

호기심, 왜 A와 P 변수를 만들어? 내 대답은 코드가 적고 더 효율적이지 않습니까? 나는 아직도 배우고있어, 그래서 나는 정말로 모른다. –

+0

코드는 across 문에 대한 참조를 사용하므로 jquery 선택자 호출이 줄어들도록 변수를 사용하는 것을 선호합니다. 이 코드는 a와 p 전역에 대한 참조를 향상 시켜서 완전한 로직을 위해 insertP – Chandu

1

이 함수는 기존 요소를 제거한 다음 새 요소를 추가합니다. 존재하지 않는 경우 단순히 요소를 추가합니다.

<body> 
    <script type="text/javascript"> 
    $(document).ready(function() { 
      function addAfterB(pElement) { 
        if (!$('#b ~ p')) { 
          $(pElement).insertAfter('#b');   
        } else if ($('#b ~ p')) { 
          $('#b ~ p').remove(); 
          $(pElement).insertAfter('#b') 
        }   
      } 
      addAfterB('<p>New Item 1</p>'); 

    }); 
    </script> 

    <div id="a"> 
      <div id="b"></div> 
      <p>hello</p> 
    <div> 

+0

+1에 대한 모든 호출에 대해 find와 jquery 선택자를 피할 수 있습니다. 이것은 스푼 먹이기도합니다. :) – Pradeep

1

당신은 $ 후론()를 사용할 수 있습니다 ...

<div id="a"> 
    <div id="b"></div> 
<div> 

... 
<script> 
    $("#b").after("<p>Insert me after #b</p>"); 
</script> 
관련 문제