2013-12-16 43 views
0

我正在使用JS搜索XML並獲取它的元素以便在進一步處理中使用它,我使用heapbox來顯示元素,然後使用.selected獲取選定元素以顯示其子元素。如何獲得.selected字符串?

這裏的問題是,我想選擇的元素,爲了讓孩子之前做出一些名稱的處理,但我得到了它在var存儲沒事的時候,得到它直接使用全查詢時工作,

爲前,

var section = '', text = '' ; 
section = $('menu').find($(".selected").text()).attr('nodeName'); 
alert($('menu').find($(".selected").text()).attr('nodeName')); 
在該代碼 section等於一無所有

text等於零,它警報undefined,同時採用$('menu').find($(".selected").text()).attr('nodeName')直接處理工作非常好。

UPDATE:

xml文件:

<?xml version="1.0" encoding="UTF-8"?> 
<menu parent_id="0" > 

    <Menu cat="main"> 

    </Menu> 
    <Soup cat="main"> 
      <Mushrom0Tomato.Soap price = "15.95" hasoption = "false"> 
      </Mushrom0Tomato.Soap> 
      <Cream.Of.Chicken.Soap price = "16.95" hasoption = "true"> 

        <Add.Mushroom price = "3.95"></Add.Mushroom> 
        <none price = "0"></none> 

      </Cream.Of.Chicken.Soap> 
      <Season.Soap price = "15.95" hasoption = "false"> 
      </Season.Soap> 
    </Soup> 
</menu> 

JS代碼:

var cats=[], cati=0, total=0, selectedarray=[], itemoptions=[], optionstring='', section='', si=0, oi=0, items=[]; 

$("#total").append("Total: " + total + " EGP"); 

$('#dummy').load('cafe.xml',function() { 
initialize(); 
}) 
function initialize(){ 
ct=$('menu').children().length; 
for(cati==0;cati<=ct-1;cati++) 
{ 
cats[cati]=$('menu').children().eq(cati).prop('nodeName'); 

var realname = cats[cati]; 
if(realname.indexOf(".") != -1){ 
    realname = realname.replace(/\./g,' '); 
    } 

$('.basic-example').append('<option value="option1">'+realname+'</option>'); 
} 
$(".basic-example").heapbox({'onChange':function(){loadmenu()},effect:{type:"fade",speed:"slow"}}); 

} 



// loading the items to the menu 
function loadmenu() 
{ 

$("#gallery").empty(); 
section = $('menu').find($(".selected").text()).attr('nodeName'); 
alert($("menu .selected").text().toString()); 
. 
. 
. 

回答

0

.find是指用於發現所選節點的子元素

你可能只是想

$("menu .selected").text(); 

而且

$("menu .selected").attr("nodeName"); 

.find相當於這個(雖然可能是不必要的)會

$("menu").find(".selected").text(); 

而且

$("menu").find(".selected").attr("nodeName"); 
+0

但是當提醒'$(「菜單.selected」)。text();'它給了我一個空字符串 – MRefaat

+0

我不能幫你,除非你真的發佈你正在使用的代碼和數據。 –

+0

完成後,檢查更新 – MRefaat