2012-02-02 130 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