في محاولة للوصول إلى القائمة JSON في وظيفة أخرى لبناء خارج التنقل الموجود على الجانب الأيسر

StackOverflow https://stackoverflow.com/questions/1413036

سؤال

وأنا جديدة نسبيا إلى مسج وJSON وهذا هو أول وظيفة هنا، يرجى أن تتحملوني.

ولدي سلسلة القائمة JSON مع مجموعة من ثلاث وحدات (الاسم، العنوان، معرف - لدينا صفحة داخلية رقم معرف) والملاحة أعلى مستوى يبني من الغرامة. I حلقة عبر العناصر على مستوى عال ودعوة وظيفة متكررة للحصول على القوائم الفرعية.

ما أحاول القيام به الآن هو في جزء منفصل من صفحة الويب، استخدام السلسلة القائمة JSON العثور على الصفحة مستوى أعلى (news.aspx، على سبيل المثال)، وبناء خارج القائمة لتلك الصفحة وانها الفرعية عناصر لإظهارها في التنقل الموجود على الجانب الأيسر أن فقط للظهور في صفحة الأخبار.

والمشكلة أواجه هو هذا البرنامج النصي أدناه يعمل دون أية أخطاء جافا سكريبت، ومع ذلك، فإنه هو سحب أعلى مستوى الملاحة. ويطلق على الملاحة أعلى مستوى في الأساس بنفس الطريقة باستثناء وظائف هي CreateMenu () وCreateMenuRecursive ().

وبعض التعليمات البرمجية أنا باستخدام هنا لقد حصلت من قراءة وظائف أخرى على هذا الموقع، ولكن لم أجد جوابا لهذا. شكرا مقدما على أي مساعدة.

<div id="LeftNavDiv">&nbsp;</div> 

<script type="text/javascript">
$(function(){   
var sidemenuString = CreateSideMenu();
$("#LeftNav").html(sidemenuString);
});

function CreateSideMenu(){
$.get("menu");
var sidenavHTML = new Sys.StringBuilder();
for(var i=0; i < menu.MenuItem.length; i++){
    if(menu.MenuItem[i].id == 'a123456'){
        CreateSideMenuRecursive(menu.MenuItem[i],sidenavHTML);
    }
}
return sidenavHTML.toString();
}

function CreateSideMenuRecursive(item, outputHTML){
if(item.MenuItem == null || item.MenuItem.length == 0)
return;

outputHTML.append("<ul>");
for(var i=0; i < item.MenuItem.length; i++){
    if(item.MenuItem[i].id == CurrentPageID){
        outputHTML.append("<li><a href='" + item.MenuItem[i].url + "'>" + item.MenuItem[i].label + "</a>");
    } 
    CreateSideMenuRecursive(item.MenuItem[i], outputHTML);
    outputHTML.append("</li>");
}
outputHTML.append("</ul>");
}
</script>
هل كانت مفيدة؟

المحلول

وكما تبين، وكنت مما يجعلها وسيلة معقدة للغاية. كل ما كان علي القيام به العثور على أ href (news.aspx) من السلسلة القائمة JSON والحصول على القائمة الفرعية. أخذت ما كان أعلاه والمقطر وصولا الى هذه الأسطر القليلة من التعليمات البرمجية:

<div id="LeftNavDiv"></div>
<script type="text/javascript">
$(function(){   
var sidemenu = $("a[href$='news.aspx']").next("ul").get();
$("#LeftNavDiv").html(sidemenu);    
});
</script>

ويخلق ديناميكية هذا شعبة وغير مرتبة قائمة سحب حتى أسلوب، أي "قائمة أعلى" من السلسلة القائمة JSON:

<div id="LeftNavDiv">
    <ul>
        <li class="menu-top"/>
        <li><a href="sandbox1.aspx">Lorem ipsum</a></li>
        <li class="menu-bot"/>
   </ul>
</div>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top