Javascript.RU

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

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

Группа1
связка1: 2 10 15
связка2: 2 4 25
Остануться: 4 25

Группа2
связка1: 4 13 1
связка2: 1 8 4
Остануться: 8

и т.д.

html:
<div class="node-tovar">
	<div class="field-name-field-size-m">
		<div class="field-item">21-47</div>
		<div class="field-item">47</div>
	</div>

	<div class="form-item-line-item-fields-field-size-item-und">
		<div class="form-item">20</div>
		<div class="form-item">21</div>
		<div class="form-item" >21-47</div>
		<div class="form-item">47</div>
	</div>
</div>

<div class="node-tovar">
	<div class="field-name-field-size-m">
		<div class="field-item">4</div>
		<div class="field-item">95</div>
	</div>

	<div class="form-item-line-item-fields-field-size-item-und">
		<div class="form-item">3</div>
		<div class="form-item">5</div>
		<div class="form-item" >4</div>
	</div>
</div>


Мое решение(нубское):
function MyFuProducts () {
var colvoTovarov = $('.node-tovar').length - 1;

for (var i = 0; i <= colvoTovarov; i++) {

var RazmerColvo = $('.node-tovar:eq('+i+') .field-name-field-size-m .field-item').length -1;
var RazmerColvoPerem = $('.node-tovar:eq('+i+') .form-item-line-item-fields-field-size-item-und .form-item').length -1;

for (var I = 0; I <= RazmerColvo; I++) {
var TextRazmer = $('.node-tovar:eq('+i+') .field-name-field-size-m .field-item:eq('+I+')').text().replace(/(^\s+|\s+$)/g,'');
var ColvoSimvolov = TextRazmer.length;

for (var Vi = 0; Vi <= RazmerColvoPerem; Vi++) {
var TextRazmerDva = $('.node-tovar:eq('+i+') .form-item-line-item-fields-field-size-item-und .form-item:eq('+Vi+')').text().replace(/(^\s+|\s+$)/g,'');
var ColvoSimvolovDva = TextRazmerDva.length;

if (TextRazmer == TextRazmerDva && ColvoSimvolov == ColvoSimvolovDva) {
$('.node-tovar:eq('+i+') .form-item-line-item-fields-field-size-item-und .form-item:eq('+Vi+')').css('display', 'none');
};
};
};
};
}

MyFuProducts();


решение писал на jquery, это мои первые шаги, прошу сильно не ругать, а подсказать как это дело все можно упростить что бы например при количестве групп около 100 на странице давало меньше нагрузку, так как подозреваю что этот способ будет прилично кушать.

Последний раз редактировалось maksbaks, 03.09.2014 в 00:09.
Ответить с цитированием
  #2 (permalink)  
Старый 03.09.2014, 08:47
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

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

<!DOCTYPE html>
<html>
<head>
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
.off {
	display: none;
}
.node-tovar {
	border: 1px solid;
}
.field-name-field-size-m {
	border: 1px solid red;
}
</style>
<script type='text/javascript'>
$(function (){
	$('button').click(function (){
		$('.field-item').each(function (){
			var val=this.innerHTML;
			$(this).parent().next().find('.form-item:contains('+val+')').hide();
		});
	});
});
</script>
</head>
<body>
<div class="node-tovar">
	<div class="field-name-field-size-m">
		<div class="field-item">21-47</div>
		<div class="field-item">47</div>
	</div>
	<div class="form-item-line-item-fields-field-size-item-und">
		<div class="form-item">20</div>
		<div class="form-item">21</div>
		<div class="form-item" >21-47</div>
		<div class="form-item">47</div>
	</div>
</div>
<div class="node-tovar">
	<div class="field-name-field-size-m">
		<div class="field-item">4</div>
		<div class="field-item">95</div>
	</div>
	<div class="form-item-line-item-fields-field-size-item-und">
		<div class="form-item">3</div>
		<div class="form-item">5</div>
		<div class="form-item" >4</div>
	</div>
</div>
<button>Close</button>
</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Упрощенный способ скрытия похожих чисел maksbaks Общие вопросы Javascript 1 03.09.2014 11:30