2012-06-07 4 views
2

이전 형제의 이름을 알아야합니다.이전 형제 이름을 얻는 방법

<table id="sort"> 
    <tr name="nodrag nodrop"> 
     <td colspan=3><strong><a style="cursor:pointer;" class="toggle">Group 1</a></strong> </td> 
     <td style="text-align: right;"><a class="button3" href="#" ><span> Edit </span></a> <a class="button3" href="#" ><span> Delete </span></a></td> 
    </tr> 
    <tr id="1" class="tr_group"'> 
     <td style="width:10px;" class="dragHandle">&nbsp;</td> 
     <td><a href=# style="margin-left: 20px;">Umair Iqbal</a></td> 
     <td><span style="font-size: 12px; color: #999; line-height: 100%;">A Student at TUM</span></td> 
     <td style="text-align: right;"><a class="button3" href="#" ><span> Edit </span></a> <a class="button3" href="#" ><span> Delete </span></a></td> 
    </tr> 

IST에 행이 두 번째 행의 이전 형제입니다 : 간단하게하기 위해 나는 몇 가지 예제 코드를

<html> 

<head> 
    <script type="text/javascript"> 
    function myFunction() 
    { 
     var itm=document.getElementById("item2"); 
     alert(itm.previousSibling.name); 
    } 
    </script> 
</head> 

<body> 
    <p name='pn'>paragraph</p> 
    <button id='item2' onclick="myFunction()">Try it</button> 
</body> 
</html> 

편집을해야합니다. 다음과 같은 기능을 사용할 필요가 자바 스크립트 정기적으로

$('#item2').prev().attr("name")​​​​​​​​​​;​ 

(에 : 나는 jQuery를 사용

감사

답변

7

이 될 것 1 행 내 모든 ID의 이름이 동적 될 것입니다 원하는 보장 공백 노드는

getPreviousSiblingName(document.getElementById("item2")) 

function getpreviousSiblingName(element) { 
    var p = element; 
    do p = p.previousSibling; 
    while (p && p.nodeType != 1); 
    return p.attributes["name"].value; 
} 
+0

자바 스크립트 함수에 전달하는 요소는 무엇입니까? –

+0

실제 상황에 맞게 코드를 변경하겠습니다. –

+0

안녕하세요, getpreviousSiblingName (document.getElementById ("item2")) 호출 코드를 업데이트했습니다. –

7

의 그) 무시됩니다 가능성이 있기 때문에 당신의 previousSibling가 텍스트 노드가 아닌 요소 노드가 될 것입니다. previousElementSibling (지원되는 경우) 또는 nodeType1 (Node.ELEMENT_NODE)이 될 때까지 previousElement을 얻을 루프가 필요합니다.

또한

, namep 요소 (https://developer.mozilla.org/en/DOM/Element.name 참조) 당신이 (아마도 귀하의 경우 data-name에서, HTML5 data-* 속성처럼) 사용자 지정 특성을 사용하는 경우 더 나은 따라서 속성의 값을 얻을 수 dataset을 사용할 수에 적용되지 않는다 또는 일반 getAttribute

물론 jQuery와 같은 라이브러리는 모든 것을 추상화하는 데 도움이 될 수 있습니다. 설명은 바닐라 자바 ​​스크립트와 관련이 있습니다.