JavaScript, проходящий через 2d массив - PullRequest
0 голосов
/ 02 февраля 2012

Я пытаюсь разобраться, как публиковать элементы из нескольких массивов, сначала просматривая отдельные элементы массива, а затем возвращая только те элементы, которые соответствуют определенным критериям. Следующий код пока не делает этого.

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" не работает.

1 Ответ

3 голосов
/ 02 февраля 2012

document.write только для выходного текста, вы должны написать свои собственные теги (например, div, стилизованный под зеленый).

Однако я предлагаю вам другой подход, как насчет пустого div с idи затем сделайте следующее:

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;

Надеюсь, вам будет интересно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...