Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.02.2011, 12:53
Профессор
Отправить личное сообщение для розовый слоник Посмотреть профиль Найти все сообщения от розовый слоник
 
Регистрация: 17.10.2009
Сообщений: 258

массове выделение:)
Добрый день жителям форума
Хочу сделать выделение строчек в таблице через щелчок по checkBox и зажатой клавиши shift(точнее я уже сделал но оно медленно отрисовывает) пример, как выделение писем на ya.ru, gmail.com, mail.ru и другие.

Как я делаю.
Условие для выделения строк через клавишу shift

if(shiftKey == true) {
        var lastElArray = arrayCheckBox.length - 1;
        var firstCheckBox = parseInt(arrayCheckBox[lastElArray]);
        var lastCheckBox = parseInt(input.name);
        var getElTagName = f_a('bHDSTbody_datasheet_T_a').getElementsByTagName('input');
        
        for (vaк i=0;i<getElTagName.length;i++){
            var element = getElTagName[i];
            var nextPosition = parseInt(element.name);
            if(firstCheckBox < lastCheckBox){
                if(element.type == "checkbox" && nextPosition < lastCheckBox && nextPosition > firstCheckBox){
                    addBgColorTableFild(element);
                }
            }else if(firstCheckBox > lastCheckBox){
                if(element.type == "checkbox" && nextPosition > lastCheckBox && nextPosition < firstCheckBox){
                    addBgColorTableFild(element);  
                }
            }
        }
    }


функция addBgColorTableFild просто добавляет к тегам tr класс с нужным мне бекграундом.
Функция f_a() это функция поиска элемента по id(это для понимания кода).

Насколько я понимаю вся проблема из за того, что я прохожусь по всем чек боксом и отбираю из них только те которые мне нужны. Все из за того что я не могу скачать циклу пройтись скажем от firstCheckBox до lastCheckBox из за того, что строчки можно удалять, а атрибут name в них остаются неизменным.

Короче все вот так вот плохо может кто то посоветует или на толкнет на мысль буду признателен
Ответить с цитированием
  #2 (permalink)  
Старый 02.02.2011, 13:03
Профессор
Отправить личное сообщение для розовый слоник Посмотреть профиль Найти все сообщения от розовый слоник
 
Регистрация: 17.10.2009
Сообщений: 258

стоп я кажется придумал) можно же сделать с nextSibling
но если кто то знает еще варианты пишите я попробую что быстрее работает.
Ответить с цитированием
  #3 (permalink)  
Старый 02.02.2011, 13:34
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от розовый слоник
f_a() это функция поиска элемента по id
Оригинально.

Сообщение от розовый слоник
но оно медленно отрисовывает
Удаляйте части кода и смотрите, что тормозит.
Ответить с цитированием
  #4 (permalink)  
Старый 02.02.2011, 14:38
Профессор
Отправить личное сообщение для розовый слоник Посмотреть профиль Найти все сообщения от розовый слоник
 
Регистрация: 17.10.2009
Сообщений: 258

Kolyaj
иногда и не так обзовешь функцию

уже нашел, что тормозит код, спс за помощь
Ответить с цитированием
  #5 (permalink)  
Старый 02.02.2011, 14:40
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от розовый слоник
выделение строчек в таблице
Сообщение от розовый слоник
можно же сделать с nextSibling
Сообщение от розовый слоник
если кто то знает еще варианты пишите
Таки пишу...

<html>
<head>
<title></title>
<style type="text/css">
</style>
<script>
function Go() {
	var o=document.getElementById('test'),i
	o=o.getElementsByTagName('input')
	for (i=0; i<o.length; i++) {
		if (o[i].type=='checkbox') {
			o[i].checked=true
		}
	}
}
</script>
</head>
<body>
<table id='test'>
	<tr>
		<td><input type='checkbox' /></td>
	</tr>
	<tr>
		<td><input type='checkbox' /></td>
	</tr>
	<tr>
		<td><input type='checkbox' /></td>
	</tr>
</table>
<input type='button' value='Go' onclick='Go()' />
</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 02.02.2011, 15:05
Профессор
Отправить личное сообщение для розовый слоник Посмотреть профиль Найти все сообщения от розовый слоник
 
Регистрация: 17.10.2009
Сообщений: 258

ksa
Извините но я не понял чем ваш способ отличается от моего.
Ответить с цитированием
  #7 (permalink)  
Старый 02.02.2011, 15:13
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

розовый слоник, тогда не понятно что там у тебя может "тормозить".
Ответить с цитированием
  #8 (permalink)  
Старый 02.02.2011, 17:02
Профессор
Отправить личное сообщение для розовый слоник Посмотреть профиль Найти все сообщения от розовый слоник
 
Регистрация: 17.10.2009
Сообщений: 258

как оказалось было чему тормозить там
я уже все поправил спс за внимание
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделение нескольких узлов 2de Элементы интерфейса 13 29.10.2010 15:46
Выделение текста в текстовом поле. Как снять выделение с пробела вконце? Roman Koff Events/DOM/Window 10 01.07.2010 16:48
выделение слова двойным щелчком Скриптор Общие вопросы Javascript 4 01.04.2010 00:47
Как убрать выделение в Опере у div, получившего фокус ? spa_2002 Opera, Safari и др. 5 03.09.2009 10:42
Выделение одиночных тэгов Pattern Events/DOM/Window 7 26.05.2009 23:29