2011-02-23 2 views
9

Ok 그래서 나는이 HTML 구조를 가지고 있고, 새로운 li을 test3 이후에 덧붙여 두어야 할 필요가있다. 바로 양식 li 앞에 붙인다. jquery에서 추가 논리를 수행하는 방법을 알고 있지만 어떻게 분리하고 계속 수행 할 수 있는지 확인하십시오. 아마도 라이브 함수를 사용할 수 있습니다.두 번째에 마지막으로 덧붙여진

<td class="resources_present"> 
<ul> 
    <li><a href="http://test.com">http://test.com</a></li> 
    <li><a href="http://test2.com">http://test2.com</a></li> 
    <li><a href="http://tes3.com">http://test3.com</a></li> 
<li><form method="post" id="new_resource" class="new_resource" action="/resources" accept-charset="UTF-8"><div style="margin: 0pt; padding: 0pt; display: inline;"><input type="hidden" value="✓" name="utf8"><input type="hidden" value="BEeMlTtPiMi8mv/whQ2z757CTTOnNl0oiPpN3WdqSBg=" name="authenticity_token"></div> 
    <div class="field"> 
    <input type="text" size="30" name="resource[url]" id="resource_url"> 
    <input type="hidden" value="5" name="resource[course_id]" id="resource_course_id"> 
    </div> 
    <div class="actions"> 
    <input type="submit" value="Create" name="commit" id="resource_submit" style="display: inline;"> 
     <img class="noShow" src="/images/spinner.gif" style="display: none;"> 
    </div> 
</form></li> 
</ul> 
</td> 

기본적으로 나는이를 추가 할 수있는 선택을 찾을 필요가 :

<li><a href="http://test4.com">http://test4.com</a></li> // after the 

      <li><a href="http://test3.com">http://test3.com</a></li> // and continue to do that with 5, 6 , 7, and so on 

답변

14

많은 방법이 작업을 수행 할 수 있습니다. 여기에 하나는 다음과 같습니다

$('li:last').prev(); 

그리고 추가 :

$('li:last').prev().after('<li><a href="http://test4.com">http://test4.com</a></li>'); 
+0

나는이 뜻은 생각도 있습니다 이전 요소가 li 인 경우에만 작동 – Xodarap

+2

잘 구성된 HTML에서 li의 prev 요소는 li이어야합니다. (목록에 HTML 요소가 아닌 요소가 하나만있는 경우는 제외) – AlfaTeK

8

$("#yourselectorid li").eq(-2) 최소한 2 <LI> 이미 (하나가되는이 가정 트릭

편집

을 수행해야합니다 형태)

+1

eq()에서 음수 값을 사용하는 것이 가능하지 않다는 것을 알지 못합니다. – TK123

0

이 작업에는 .after() 함수를 사용해야합니다.

는 다음과 같이 쉽게 찾기 위해 TEST3 클래스 또는 자료 :

<li id="insertafter"><a href="http://test3.com">http://test3.com</a></li> 

그런 다음 사용이 :

$('#insertafter').after('<li><a href="http://test4.com">http://test4.com</a></li>'); 

before 기능 :

관련 문제