Return to Snippet

Revision: 34943
at October 31, 2010 19:28 by nuwak


Updated Code
//удаляем дубликаты в массиве
 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+'&nbsp;<input type="text" id="minpower" size="10"><input type="text" id="maxpower" size="10">&nbsp;<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;
})
})

Revision: 34942
at October 30, 2010 18:10 by nuwak


Updated Code
//удаляем дубликаты в массиве
 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">'+sel+'</select>';

$('.cols-2').before(sel);

$('#sel').change(function(){
var se=$('#sel').val();
//se=se.replace('(','\(');
//se=se.replace(/\)/g,'\)');
var re = RegExp('.*'+se+'.*');
//поиск по таблице
var elems=$('.views-table tr');
for(var i=0;i<elems.size();i++){
$(elems[i]).find('td').each(function(b){
    if(b==1){
          if(re.test($(this).text())){ $(this).parent().addClass('tabline');
          }
          else{$(this).parent().removeClass('tabline');}
    }
      })
}
});

})

Revision: 34941
at October 30, 2010 18:09 by nuwak


Initial Code
//удаляем дубликаты в массиве
 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">'+sel+'</select>';

$('.cols-2').before(sel);

$('#sel').change(function(){
var se=$('#sel').val();
//se=se.replace('(','\(');
//se=se.replace(/\)/g,'\)');
var re = RegExp('.*'+se+'.*');
//поиск по таблице
var elems=$('.views-table tr');
for(var i=0;i<elems.size();i++){
$(elems[i]).find('td').each(function(b){
    if(b==1){
          if(re.test($(this).text())){ $(this).parent().addClass('tabline');
          }
          else{$(this).parent().removeClass('tabline');}
    }
      })
}
});

})          
  /*
$(document).ready(function(){ 
    $('#sel option').each(function(i,n){ 
    $(this).click(function(){ 
$($('.views-table tr').removeClass('tabline').get(i+1)) .addClass('tabline'); 
    }); 
}); 
});
*/
       /*
$(document).ready(function(){
$("#sel").change(function(){
    window.searchString = $("#sel option:selected").val();
    var elems = $(".views-table tr .views-field-field-proz-nid");
    elems.each(function(){
        if (window.searchString == this.innerHTML) $(this.parentNode).addClass("tabline");
        else $(this.parentNode).removeClass("tabline");
    });
});
});*/

Initial URL


Initial Description


Initial Title
Скрипт подсветки подходящих значений в талице

Initial Tags


Initial Language
JavaScript