2012-02-02 141 views
-1

我想通過如何發佈多個數組中的項目,同時首先搜索單獨的數組元素,然後只返回符合特定條件的項目。下面的代碼還沒有做到這一點。通過二維數組循環的JavaScript

enter code here<div id="myDiv"> 
<script type="text/javascript"> 


var $ = function(id) { 
    return document.getElementBuId(id); 

} 
var title = new Array("Barbecuing in the Rain","Picnicing in the Arctic", 
     "How to Saute on a Radiator", "A Real Grasshopper: Bartending with Insects", 
     "Food with a Bullet: Cooking in Camden", "Mirepoix for Dummies"); 
var price = new Array(18.50, 23.95, 41.95, 5.95, 13.00, 99.00); 
var binding = new Array("Hardcover", "Paperback", "Hardcover", "Paperback", "Paperback", "Hardcover"); 
var pubYear = new Array(2002, 1975, 2004, 2006, 2001, 1997); 
var NYTBestSeller = new Array(true, true, false, false, true, true) 
    var seriesTitle = new Array("Food Network", "The Food Network", 
      "Culinary Shortcuts", "Sunset Libations", 
      "Food Network", "The Food Network"); 
var bargainBooks = ("Food Network Hot Selling Bargain Book"); 

for (i in title) { 
    if (((price[i] <= 25 && binding[i] == "Hardcover") || 
       (price[i] <= 15 && binding[i] == "Softcover")) && (pubYear[i] >= 2000) && 
      (NYTBestSeller[i] == true) && (seriesTitle[i] == "Food Network") || (seriesTitle[i] == "The Food Network")) 


     //document.write("<span color='red'>This line is red</span>"); 



     document.write(title[i] + "<br />"); 
    document.write(price[i] + "<br />"); 
    document.write(binding[i] + "<br />"); 
    document.write(pubYear[i] + "<br />"); 
    document.write(NYTBestSeller[i] + "<br />"); 
    document.write(seriesTitle[i] + "<br />" + "<hr/>"); 

} 
</script> 

我正在尋找書籍,滿足一定的條件,然後試圖輸出,其中這本書是在頁面上熱銷圖書的綠色的消息。但我無法弄清楚如何使document.write工作。 document.write()。style.color =「green」不起作用。

回答

3

document.write僅輸出文本,您必須在那裏編寫自己的標籤(例如,樣式爲綠色的div)。

不過我建議你採用不同的方法,怎麼樣用一個id的空div,然後執行以下操作:

document.getElementById('your-div-id').innerHTML = 'text <br /> <span style="color: green;">other text</span> and so on'; 

也將有更好的方式重新組織代碼。

Document.write只會將代碼追加到輸出流(本例中爲文檔)的末尾,因此您無法指定輸出的顯示位置。

編輯1: 另外,在這種情況下使用對象怎麼樣?據我所看到的,您使用的陣列來模擬他們的行爲:

var myObjArray = [ 
    { 
     title: 'mytitle1', 
     price: '10$', 
     binding: 'dunno', 
     pubYear: 'dunno-again', 
     NYTBestSeller: true, 
     seriesTitle: 'Something' 
    }, 
    { 
     ...other object data... 
    } 
] 

document.getElementById('your-div-id').innerHTML += myObjArray[0].title + '<br />' + myObjArray[0].price; 

希望你能發現它很有趣

+0

怎麼樣創造一個新的Array []和具有在另一個環路輸出數據流內? – 2012-02-02 18:25:41

+0

你可以,但我想你想打印結果,而不是將它們存儲在另一個數組中 – 2012-02-02 22:46:13