여기서 도움을 얻을 수 있기를 바랍니다.jQuery .parent() from li : nth-child (xy)
내가 (n 번째 아이) 메뉴의 정확한 활성 리 요소를 얻기 위해이 기능을 사용 :
function getElementPathWithJquery(element) {
return $(element).parents().andSelf().map(function() {
var $this = $(this);
var entry = '';
if(this.nodeName === "BODY" || this.nodeName === "HTML") {
// do nothing
} else {
entry += this.nodeName;
if (this.className) entry += "." + this.className.replace(/ /g, '.');
if (this.id) entry += "#" + this.id;
if ($this.siblings(entry).length > 0) entry += ":nth-child(" + $this.prevAll(entry).length + ")";
}
return entry;
}).get().join(" ");
}
를 지금 요구 수준에있는 부모 리튬 요소 (A addClass를 얻을 것이다 '활성') 속성이 있지만, 다음은 작동하지 않습니다 : 나는 정확한 n 번째 요소는 메뉴 시스템은 하나 개의 항목이 실제로 이상의 범주에 속할 수있는 분류 시스템이 있다는 사실이다 필요한 이유
if($('#MENU_MAIN').find("ul.menu-level-3>li").hasClass('active')) {
var path = getElementPathWithJquery($('#MENU_MAIN').find("ul.menu-level-3>li.active"));
$(path).parent().parent().css('border','3px solid red');
}
이유. 같은 솔루션 :
$('#MENU_MAIN').find("ul.menu-level-3>li.active").parent().parent().css('border','3px solid red');
작품,하지만 범주의 수에 따라 발견 된 항목이 더 하나보다는 다만 부모 리튬은 빨간색 테두리를 가질 수에 속한다.
도움 주셔서 감사합니다. 감사 로버트
경로를 올바르게 찾았지만 $ (경로)에 추가 된 .parent(). parent() 체인이 결과를 얻지 못할 것입니다 ... – rowild
왜 CSS 선택기를에서 디코딩하려고합니까? CSS 선택기를 사용하여 방금 해결 한 요소입니까? –
어제 그 어리 석음을 깨달았습니다 ... 음 ...하지만 여기에서 CSS 선택기로 되돌려 놓고 SELECTED_AGAIN.parent(). parent()와 같은 hiearchy에서 2 단계 위로 올라갈 수 있습니다. css (doSomthing)? – rowild