1

ページをロードすると、動的リストを取得するために (ajax / php 経由で) データベース呼び出しを行います。リストは正常に表示され、次のようになります。

<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>

リストの読み込みが完了するとすぐに、現在のページに基づいてコンテンツを動的に読み込みたいので、この場合は bla3 と言うページ URL を取得します。リストを調べて、bla3 を含む li アイテムの URL(href) を取得したいと考えています。

以下のようなものがうまくいくと思いましたが、うまくいきません。

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

問題 (私が想定している) は、#menu が十分に速くロードされないため、#menu がロードされる前に on load イベントが発生することです。body で試してみましたが、どちらも機能しませんでした。基本的に、動的に生成されたリストとそれが表示されているページが完全にロードされた後、それを確認するために必要なだけです。

何か案は?

4

2 に答える 2

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>
于 2013-06-19T01:28:06.497 に答える