Как присвоить частичный цвет элементу , который принадлежит к той же группе

#javascript #html

#javascript #HTML

Вопрос:

У меня есть список, подобный этому.

    <ul>
     <li id="1">saurabh</li>
     <li id="2">sanjay</li>
     <li id="3">blah</li>
     <li id="4" parentID="3">chacha<li>
   </ul>
  

Предположим, теперь я добавляю другой элемент в список. Я хочу добавить цвет к этому специальному элементу. У меня будет список из 10 предопределенных цветов. Итак, я возьму первый цвет и удалю его из списка. Итак, в следующий раз, когда я беру цвет, первого цвета там нет.Теперь у этого специального элемента также могут быть дочерние элементы. Таким образом, все дочерние элементы будут иметь одинаковый цвет родительского элемента.

Как я могу добиться этого в java script?

Комментарии:

1. Почему JavaScript, разве это не должно быть возможно с чистым HTML / CSS?

2. я приветствую все, что угодно. Подскажите мне способ, пожалуйста! Спасибо

Ответ №1:

Вот способ сделать это. Он использует синтаксис CSS3 для nth-of-type . Посмотрите эту демонстрацию:http://jsfiddle.net/alp82/2FAcS /

Разметка CSS

 ul#myList > li:nth-of-type(1) {
    color: red;
}
ul#myList > li:nth-of-type(2) {
    color: green;
}
ul#myList > li:nth-of-type(3) {
    color: blue;
}
  

HTML-разметка:

 <ul id="myList">
    <li>first item</li>
    <li>second item</li>
    <li>
        <p>third item, which has an embedded list</p>
        <ul>
            <li>first subitem</li>
            <li>second subitem</li>
        </ul>
    </li>
</ul>
  

Все дочерние элементы третьего элемента имеют одинаковый цвет.

Комментарии:

1. 1 Это лучший выбор, если его список предварительно отображен. Это будет работать, даже если это не так.

Ответ №2:

Живая демонстрация

 var ulist = document.getElementsByTagName('ul')[0],
    colors = ['red', 'blue', '#eee313'];

function addListItem(list){
    var listItem = document.createElement('li');
    listItem.innerHTML = 'test item';
    if(colors.length > 0){
        listItem.style.background = colors[0];
        list.appendChild(listItem);
        colors.shift();
    }
}

setInterval(function(){addListItem(ulist)}, 2000);
  

Живая демонстрация 2 — Показывает, как родительский цвет li будет передан любым дочерним элементам.

Комментарии:

1. Я имею в виду, что если «blah» красный, то все это дочерние элементы, такие как «item1», «item2″…. должен быть красным……

2. Они были бы, вы бы добавили список к элементу LI, в котором есть бла.

3. можете ли вы показать мне живую демонстрацию этого также. Я не знаю HTML и css.

4. добавлена живая демонстрация 2, как вы добавляете дополнительные элементы списка? Через javascript? Если вы не добавляете элементы в режиме реального времени, то ответ @Alp будет лучшим.

5. на самом деле в моем scenerio у меня есть список и дочерние элементы. Дочерние элементы выглядят как обычные <li> . Итак, я не могу провести различие, потому что и родительский, и дочерний элементы используют один и тот же класс CSS.