Упрощенный способ скрытия похожих чисел
Добрый день.: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: :( |
Цитата:
<!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>
|
| Часовой пояс GMT +3, время: 17:56. |