Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Упрощенный способ скрытия похожих чисел (https://javascript.ru/forum/misc/49908-uproshhennyjj-sposob-skrytiya-pokhozhikh-chisel.html)

maksbaks 02.09.2014 23:38

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

Группа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 на странице давало меньше нагрузку, так как подозреваю что этот способ будет прилично кушать.:cray: :(

Rise 03.09.2014 11:30

maksbaks, так по короче будет :) :
function MyFuProducts(){
	$('.node-tovar').each(function(i,x){
		var v = $('.form-item:visible',x);
		$('.field-item',x).each(function(i,y){
			v.each(function(i,z){
				if ($(y).text() == $(z).text()) $(z).hide();
			});
		});
	});
}


Часовой пояс GMT +3, время: 20:47.