/ Published in: JavaScript
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
//удалÑем дубликаты в маÑÑиве function removeDuplicateElement(arrayName) { var newArray=new Array(); label:for(var i=0; i<arrayName.length;i++ ) { for(var j=0; j<newArray.length;j++ ) { if(newArray[j]==arrayName[i]) continue label; } newArray[newArray.length] = arrayName[i]; } return newArray; } //функции Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð»Ð¸ÑˆÐ½Ð¸Ñ… пробелов var allSpacesRe = /\s+/g; var leadingSpacesRe = /^\s+/; var trailingSpacesRe = /\s+$/; function removeSpaces(s) { return s.replace(allSpacesRe, ""); } function trimLeading(s) { return s.replace(leadingSpacesRe, ""); } function trimTrailing(s) { return s.replace(trailingSpacesRe, ""); } function trim(s) { return trimLeading(trimTrailing(s)); } $(document).ready(function(){ //Ñобираем маÑÑив вÑех производителей var arr_proz=[]; var el=$('.views-table tr'); for(var d=0;d<el.size();d++){ $(el[d]).find('td').each(function(c){ if(c==1){ arr_proz[d]=$(this).text(); } }) } arr_proz=removeDuplicateElement(arr_proz); //формируем Ñелект по производителÑм var sel=''; $.each(arr_proz,function(index,value){ if(value){ value=trim(value); //УдалÑем Ñлова в Ñкобках что бы потом поиÑк по регулÑрному выражению прошел без проблем var opval=value.replace(/\([а-ÑÐ-Я]+\)/g,''); //alert(opval); sel+='<option value="'+opval+'">'+value+'</option>'; } }) sel='<select id="sel"><option value="all">Ð’Ñе</option>'+sel+'</select>'; //добовлÑем форму на Ñтраницу $('.cols-2').before('<form id="filtertab" name="filtertab">'+sel+' <input type="text" id="minpower" size="10"><input type="text" id="maxpower" size="10"> <input type="submit" id="slight" value="Применить"></form>'); $('#filtertab').submit(function(){ //Ñбор значений var minPower=$('#minpower').val(); minPower=minPower.replace(/\,/g,'.'); minPower=minPower*1; var maxPower=$('#maxpower').val(); maxPower=maxPower.replace(/\,/g,'.'); maxPower=maxPower*1; var se=$('#sel').val(); var re = RegExp('.*'+se+'.*'); if(maxPower==0){maxPower=9999999;} //поиÑк по таблице var mpElems=$('.views-table tr'); for(var i=0;i<mpElems.size();i++){ $(mpElems[i]).find('td').each(function(b){ if(b==1){ if(se!='all'){ if(re.test($(this).text())){ $(this).parent().addClass('tabline'); valtr=1; } else{$(this).parent().removeClass('tabline'); valtr=0; } }else{ $(this).parent().addClass('tabline'); valtr=1; } } if(b==2 && valtr==1){ var pval=$(this).text(); if(minPower<=pval && maxPower>=pval){ $(this).parent().addClass('tabline'); } else{ $(this).parent().removeClass('tabline'); } } }) } return false; }) })