Javascript.RU

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

Работа со строками таблицы
В таблице есть строки которые имеют одинаковые id.
К примеру оплачен счет или не оплачен.

<tr id="active" class="client"></tr>
<tr id="active" class="client"></tr>
<tr id="active" class="client"></tr>
<tr id="not_active" class="client"></tr>
<tr id="not_active" class="client"></tr>
<tr id="canc" class="client"></tr>
<tr id="canc" class="client"></tr>


<select name="items" onchange="showhideBlocks(value)">
<option value="0"> All
<option value="1">Activ 
<option value="2"> non active
</select>


function showhideBlocks(val){
if(val==0){
document.getElementById('active').style.display='table-row';
document.getElementById('not_active').style.display='table-row'; 
document.getElementById('canc').style.display='table-row'; 
}
else{
document.getElementById('active').style.display='none';
document.getElementById('not_active').style.display='none';
document.getElementById('canc').style.display='none';
document.getElementById('i'+val).style.display='table-row';    
}
}


Нужно скрывать все строки определенного id, но почемуто работает не так как нужно.
Ответить с цитированием
  #2 (permalink)  
Старый 03.06.2011, 16:22
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,565

id - уникальный идентификатор.
Почитайте хоть что-нибудь.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 03.06.2011, 18:11
Интересующийся
Отправить личное сообщение для lord13 Посмотреть профиль Найти все сообщения от lord13
 
Регистрация: 13.01.2011
Сообщений: 12

с getElementById понятно, спасибо, каким образом можно заменить данный пример на getElementsByName?
Ответить с цитированием
  #4 (permalink)  
Старый 03.06.2011, 18:22
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

В место ID используйте классы. Для работы либо найдите кроссбраузерную функцию getElementsByClass, либо сами бегайте по строчками и проверяйте класс:
if (elem.className == 'blablabla') { //...
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #5 (permalink)  
Старый 03.06.2011, 20:37
Интересующийся
Отправить личное сообщение для lord13 Посмотреть профиль Найти все сообщения от lord13
 
Регистрация: 13.01.2011
Сообщений: 12

function findClass('clientareatableactive clientareatableterminated', node) {
	if(document.getElementsByClassName) return (node || document).getElementsByClassName(str);
	else {
		var node = node || document, list = node.getElementsByTagName('*'), length = list.length, Class = str.split(/\s+/), classes = Class.length, array = [], i, j, key;
		for(i = 0; i < length; i++) {
			key = true;
			for(j = 0; j < classes; j++) if(list[i].className.search('\\b' + Class[j] + '\\b') == -1) key = false;
			if(key) array.push(list[i]);
		}
		return array;
	}
}


Как мне использовать эту функцию в моем случае, без использования select, заменим его обыкновенными ссылками.
Ответить с цитированием
  #6 (permalink)  
Старый 03.06.2011, 21:37
Интересующийся
Отправить личное сообщение для lord13 Посмотреть профиль Найти все сообщения от lord13
 
Регистрация: 13.01.2011
Сообщений: 12

Сделал вот так ----

function non_active() {
   var n = document.getElementById('sort').getElementsByClassName('clientareatableactive')
     for (var i=0; i<n.length; i++)
       n[i].style.display = "none";

 }
 
 function active() {
   var a = document.getElementById('sort').getElementsByClassName('clientareatableterminated')
     for (var i=0; i<a.length; i++)
       a[i].style.display = "none";

 }


только теперь когда уже выбраны non_active() при нажатии (выборе) active() просто скрывает все и не показывает то что нужно.

как указать чтоб всегда выберало со всей таблице, а не только в видимых tr?
Ответить с цитированием
  #7 (permalink)  
Старый 04.06.2011, 15:14
Интересующийся
Отправить личное сообщение для lord13 Посмотреть профиль Найти все сообщения от lord13
 
Регистрация: 13.01.2011
Сообщений: 12

Разобрался, появилась новая задача:
Скрыть ВСЮ строку если в ней присутствует какой либо тег с определенным классом:
<tr>
  <td>
    <span class="textred"></span>
  </td>
</tr>
<tr>
  <td>
    <span class="textgreen"></span>
  </td>
</tr>


function pay() {
   var p = document.getElementsByClassName('textred')
     for (var i=0; i<p.length; i++)
       p[i].style.display = "table-row";
   var s = document.getElementsByClassName('textgreen')
     for (var i=0; i<s.length; i++)
       s[i].style.display = "none";
}

 function npay() {
   var p = document.getElementsByClassName('textgreen')
     for (var i=0; i<p.length; i++)
       p[i].style.display = "table-row";
   var s = document.getElementsByClassName('textred')
     for (var i=0; i<s.length; i++)
       s[i].style.display = "none";
}

Где подправить можно?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строками Destrifer Общие вопросы Javascript 18 29.05.2013 00:51
Работа со строками puls Общие вопросы Javascript 1 01.03.2011 22:53
работа со строками в IE8 rimdus Internet Explorer 5 04.09.2010 15:52
низкоуровневая работа со строками KOLANICH Общие вопросы Javascript 5 07.07.2010 23:05
Ширина таблицы Syltan (X)HTML/CSS 1 01.05.2010 22:33