Автор Тема: изменение цвета в динам. поле select  (Прочитано 6532 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Reindjer

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 30
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
здравствуйте:)

столкнулся с проблемой что не знаю как изменить цвет текста при составлении динамического поля select.
то есть:

средствами javascript создается динамическое поле select id=2 в зависимости от значения первого поля id=1. При составлении списка надо чтоб определенные пункты в поле select отображались другим цветом:
ну вот что то типа этого. document.getelementbyid("razdel").style.color="#111111" не работает.

раздел
подраздел
подраздел
подраздел

раздел
подраздел
подраздел
подраздел
...
...
раздел
подраздел
...

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
изменение цвета в динам. поле select
« Ответ #1 : 02 Марта 2007, 11:49:10 »
Reindjer, ниже преведены два способа, работают оба..

Расскоментируешь первый способ получишь красный цвет, иначе будет синий.

А вообще

Цитировать
Reindjer:
document.getelementbyid("razdel").style.color="#111111" не работает.


Работать не будет, потому что JavaScript регистрозависимый и метода getelementbyid вообще нет!


<html>
	
<
head>
	
	
<
title></title>
	
	
<
meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
	
</
head>
	
<
body>
	
	
<
select id="my_select">
	
	
	
<
option id="option1">раздел</option>
	
	
	
<
option>подраздел</option>
	
	
	
<
option>подраздел</option>
	
	
	
<
option>подраздел</option>
	
	
	
<
option>подраздел</option>
	
	
	
<
option>подраздел</option>
	
	
	
<
option>подраздел</option>
	
	
</
select>
	
	
<
script language="JavaScript" type="text/javascript">
	
	
	

	
	
	
//document.getElementById(\'my_select\').options[0].style.color = \'#F00\';
	
	
	

	
	
	
document.getElementById(\'option1\').style.color = \'#00F\';
	
	
</script>
	
	

	
</body>
</html>

Оффлайн andymc

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 400
  • +1/-0
  • 0
    • Просмотр профиля
изменение цвета в динам. поле select
« Ответ #2 : 02 Марта 2007, 15:34:06 »
Недавно открыл для себя, что вот так работает тоже: option1.style.color = \'#00F\';

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
изменение цвета в динам. поле select
« Ответ #3 : 02 Марта 2007, 17:36:04 »
Цитировать
andymc:
Недавно открыл для себя, что вот так работает тоже:

option1.style.color = \'#00F\';



Сомневаюсь, что во всех браузерах. Поэтому все же лучше не использовать!

Оффлайн Reindjer

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 30
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
изменение цвета в динам. поле select
« Ответ #4 : 02 Марта 2007, 21:14:13 »
о:) спасибо большое:)

Оффлайн Reindjer

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 30
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
изменение цвета в динам. поле select
« Ответ #5 : 03 Марта 2007, 10:14:59 »
ой... а как мне в нижеследующем коде, который генерит поле select
вставить id у option (то есть )


//принимает список значений из пхп
var Resp reqrequest.responseJS.q;
//принимает список id значений из пхп
var RespId=reqrequest.responseJS.q_id;
//создаем массив значений
var Values Resp.split(\'|\');
//создаем массив id значений
var ValuesId=RespId.split(\'|\');
//сколько элементов в массиве
var cLength = Values.length;
var oList = document.forms[\'dataForm\'].elements[\'rubric\'];
//обнуляем список select
oList.length = 0;
for (i = 0; i < cLength; i++) {
  if (document.createElement){
    //создаем элемент option
    var newListOption = document.createElement(\'OPTION\');
    //вставляем id значений
    newListOption.value = ValuesId[i];
    //вставляем текстовые значения
    newListOption.text = Values[i];
    //создаем элемент
    (oList.options.add) ? oList.options.add(newListOption) : oList.ad (newListOption, null);
  }else{
    // создаем элемент для NN3.x-4.x
    oList.options[i] = new Option(Values[i], Values[i+1], false, false);
  }
}

Оффлайн andymc

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 400
  • +1/-0
  • 0
    • Просмотр профиля
изменение цвета в динам. поле select
« Ответ #6 : 03 Марта 2007, 15:02:41 »
А может быть так newListOption.id ValuesId[i];

Оффлайн Reindjer

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 30
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
изменение цвета в динам. поле select
« Ответ #7 : 08 Марта 2007, 18:46:11 »
так то оно так... все перебробывал что мне посоветовали в данной теме - не помогает.
подробно:

<body
        <
select id="my_select"
            <
option id="option1">раздел</option
            <
option>подраздел</option
            <
option>подраздел</option>


так я не могу сделать, так как данные которые между берутся из mysql средствами php. созданный массив значений я передаю в javascript и в нем уже создаю динамически поле select и option...

newListOption.id ValuesId[i];
это тоже не поможет... так как id пропишится ко всем значениям option... смысла нет... если у всех option есть id то я тож не могу именно из этого массива выбрать раздел и поменять его цвет...

в общем получается либо я всему массиву, который передается из php в javascript могу применить цвет либо нет... а вот как сделать так чтоб именно определенные элементы массива можно было бы выделить цветом... вот что мне нужно

есть способ но я не знаю как реализовать... есть ли в javascript команда которая обрабатывает строку слева или справа. например есть строка $str="---раздел---";
и с помощью функции например $str=left($str,3) будет => "---"

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
изменение цвета в динам. поле select
« Ответ #8 : 08 Марта 2007, 20:08:02 »
По какому критерию разделы (которые надо подсветить другим цветом) отличаются от подразделов?

Оффлайн Reindjer

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 30
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
изменение цвета в динам. поле select
« Ответ #9 : 09 Марта 2007, 20:00:58 »
1. разделы из одной таблицы mysql
2. подразделы из второй таблицы mysql
3. объединяются все через код пхп в виде массива и отдается javascript\'у

отличаются наверно только тем что:
у разделов вид типа: "---раздел---"
у подразделов вид типа: "подраздел"
можно ли в зависимости есть ли "---" подсветить данный option другим цветом?

Оффлайн andymc

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 400
  • +1/-0
  • 0
    • Просмотр профиля
изменение цвета в динам. поле select
« Ответ #10 : 09 Марта 2007, 20:42:28 »
Reindjer
Случай, попробуй на php их подсветить, это несложно ведь...

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
изменение цвета в динам. поле select
« Ответ #11 : 09 Марта 2007, 22:10:34 »
Цитировать
Reindjer:
можно ли в зависимости есть ли "---" подсветить данный option другим цветом?


if(newListOption.value.indexOf(\'---\') == 0)
{
   newListOption.style.color = \'#F00\';
}

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28