2013-06-19 4 views
0

페이지를로드 할 때 동적 목록을 얻기 위해 (ajax/php를 통해) 데이터베이스 호출을합니다. 목록은 잘 표시하고이 같은 같습니다 즉시 목록 내가 동적 I가 오전 페이지를 기반으로 콘텐츠를로드 할 로딩을 완료로동적으로 생성 된 목록에서 문자열을 찾는 방법

<ul id="menu"> 
<li><a href="#page-bla">bla</a></li> 
<li><a href="#page-bla2">bla2</a></li> 
<li><a href="#page-bla3">bla3</a></li> 
</ul> 

를, 그래서이 경우는 할 수있는 페이지의 URL을 잡아 say bla3입니다. 목록을 살펴보고 bla3이 포함 된 li 항목의 URL (href)을 가져 오려고합니다.

나는 아래에서 설명하는 것이 작동 할 것이라고 생각했지만 그렇지 않습니다.

$(document).ready(function() { 
    $('#menu').on('load', function(){ 
     var pageID = $('#menu li a[href$="?bla3"]').attr('href'); 
     alert(pageID); 
    }); 
}); 

문제는 (내가 가정입니다) 충분히 빠르게, 나는 몸을 시도하고 그 중 하나가 작동하지 않았다 #menu로드되기 전에로드 이벤트가 발생에 있도록 #menu로드되지 않는 것입니다. 본질적으로 필자는 그 후에 동적으로 생성 된 목록을 살펴보고 그 페이지가 완전히로드 된 상태 여야합니다.

아이디어가 있으십니까? 당신이 당신의 메뉴를 기다릴 수있는 방법이 필요한 것처럼

+0

당신이 전혀 경고를 받고 :

여기에 설명하는지 시뮬레이션 할 것으로 보인다 거친 바이올린이야? '$ ('# menu li a [href $ = "? bla3"] ') attr ('href ')'는'$ ('# menu li a [href $ = "bla3"]이어야합니다. ') .attr ('href ')' – PSL

+0

실제로? 오타가 있지만 아무런 경고가 표시되지 않습니다. 로드에서 마우스 오버로 이벤트를 전환 한 후 리에 목표를 설정 했으므로 페이지 ID가 올바르므로로드 이벤트가 작동하지 않습니다. – RAC

+0

질문에 더 많은 내용을 추가해야합니다. 플러그인에 사용하고있는 플러그인 ... 그리고 바이올린을 설정해보십시오. 사용중인 메뉴 플러그인에서 제공하는 이벤트 인로드 이벤트입니까? – PSL

답변

0
<body onload="findList()"> 

는 그런 다음 <head>

<head> 
<script type="text/javascript" language="javascript"> 
function findList() { 
var list = document.getElementById("menu").getElementsByTagName("li"); 
var contains = "bla3"; 
var patt = new RegExp(contains,"g"); 
for (var x=0;x<list.length;x++) { 
    if (list[x].match(patt).length>0) { 
    var hrefVal = list[x].childNodes[0].href; 
    alert(hrefVal); 
    } 
} 
} 
</script> 
</head> 
0

시작하는이 기능을 필요 보인다. 요소에 대한 DOM 폴링을 시도 할 수 있습니다. http://jsfiddle.net/rkLVx/1/

var menuHasArrived = function (fn) { 
    console.log('checking...'); 
    if ($('#menu').length) { 
     fn(); 
    } else { 
     setTimeout(function() { 
      menuHasArrived(fn); 
     }, 1000); 
    } 
} 

menuHasArrived(function() { 
    alert($('#menu li a:contains(bla2)').attr('href')); 
}); 

setTimeout(function() { 
    $('body').append(
     '<ul id="menu">' + 
     '<li><a href="#page-bla">bla</a></li>' + 
     '<li><a href="#page-bla2">bla2</a></li>' + 
     '<li><a href="#page-bla3">bla3</a></li>' + 
     '</ul>'); 
}, 2000); 

행운

관련 문제