2014-11-25 4 views
0
<form class="register"> 
    <div class="form-group"> 
     <input type="submit" value="Signup" class="btn btn-submit" /> 
    </div> 
    <div class="form-group needAccount" id="req_val"> 
     <a href="#" class="toggleForms">Login from here</a> 
    </div> 
</form> 

이 지금은이 양식을 통과하고 마지막 div#req_val의 모든 학부모 싶어 문자열에 저장하므로 출력 당신은 부모를 통해 통과 할 수모든 부모를 얻고

form.register div.form-group.needAccount#req_val 
+0

DIV 번호의 req_val 주어진 코드에 하나의 부모가. 질문을 명확하게 설명하고 출력물을 얻으려고 노력하십시오. – prakashstar42

+0

사실 나는 php에서 html dom crawler를 작업하고 있는데, 사용자로부터 요소를 선택하고 선택된 요소의 html을 가져와야합니다. 그래서 모든 부모님이 클릭 한 요소를 원합니다. –

답변

1

즉 문자열이어야한다 .parents()을 사용하여 직접 생성하십시오. 아래의 샘플 구현을 참조하십시오

// returns <tag-name>[.<class1>[.<class2>] ...][#<id>] for the passed element 
function getSelector(_elem) { 
    var parts = [_elem.tagName].concat(_elem.className.split(/\s+/).map(function(_class) { 
     return (_class ? '.' + _class : ''); 
    })); 
    _elem.id && parts.push('#' + _elem.id); 
    return parts.join(''); 
} 

var elem = $('#req_val'), parents = elem.parents(), str = []; 
parents.each(function() { // add parents 
    str.unshift(getSelector(this)); // unshift since parents() gives you the nearest parent first 
}); 
str.push(getSelector($('#req_val')[0])); // add self 
str = str.join(' '); // join with space 

console.log(str); 

데모 : http://jsfiddle.net/wu41vwuf/

1

당신이 사용할 수있는 parents() 또는 .parentsUntil() (폼에서 중지해야하는 경우).

.parents()에는 현재 요소 자체가 포함되어 있지 않으므로 결과 집합에 .add()이 필요합니다. 그런 다음 세트를 통해 .map()을 작성하고 세트의 각 요소에 대해 원하는 문자열을 작성하십시오. .get()을 사용하여 DOM 요소를 jQuery 세트에서 가져온 다음 .join() 문자열로 가져옵니다.

form 주위에 div을 하나 더 포함하여 .parents()이 (가) 트리를 어떻게 지나가고 있는지 알 수 있습니다.

발췌문 :

var $parents = $("#req_val").parents().add("#req_val"); 
 
var str = $parents.map(function() { 
 
    var retVal = this.tagName; 
 
    retVal += this.id ? '#' + this.id : ''; 
 
    retVal += this.className ? '.' + this.className.replace(' ', '.') : ''; 
 
    return retVal; 
 
}).get().join(' '); 
 

 
$("#result").text(str);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div> 
 
    <form class="register"> 
 
     <div class="form-group"> 
 
      <input type="submit" value="Signup" class="btn btn-submit" /> 
 
     </div> 
 
     <div class="form-group needAccount" id="req_val"> <a href="#" class="toggleForms">Login from here</a> 
 

 
     </div> 
 
    </form> 
 
</div> 
 
<hr /> 
 
<p id="result"></p>

관련 문제