2014-04-02 42 views
0

我有一些jQuery語句,第一個作品但第二個沒有。jQuery顯示XML的每個兄弟的文本循環

$('<h2>', { text: $person.find('name').text() }).appendTo($div); 
$('<h3>', { text: $person.find('rooms').each('room').text() }).appendTo($div); 

我想要做的第二條語句是打印出每個'房間'父節點的每個兄弟姐妹命名空間。 XML數據看起來像這樣:

<?xml version="1.0" encoding="utf-8"?> 
<people> 
    <person> 
     <id>1</id> 
     <name>Annex</name> 
     <rooms> 
      <room>100</room> 
      <room>203</room> 
     </rooms> 
    </person> 
    <person> 
     <id>2</id> 
     <name>Library</name> 
     <rooms> 
      <room>101</room> 
      <room>102</room> 
     </rooms> 
    </person> 
</people> 

我明白第一條語句是如何工作的,它打印出每個建築物的名稱。但是我怎樣才能修正第二條陳述來打印每個房間的房間?

回答

1

你在房間裏設置需要循環,然後創建h3 &其追加到div就像

$person.find('rooms room').each(function() { 
    $('<h3>', { 
     text: $(this).text() 
    }).appendTo($div); 
}) 
  • each()並不需要一個字符串作爲參數
  • ,因爲你需要創建多個h3元素,你需要使用迭代器
+0

謝謝,我是新來的jquery和短手代碼...那麼,什麼是因爲沒有索引變量,你的答案中的迭代器? – Jim22150

+1

@ Jim22150每種方法都像一個迭代器......'.find('rooms room')'返回一組匹配的元素(在你的情況下爲2),'.each(function(){})'將調用集合中每個元素的傳遞函數 –