2015-10-09 3 views
1

У меня есть следующий html.jQuery Селектор между двумя значениями атрибутов

<span end_timestamp="4520" timestamp="4150" id="1">Elemnt</span> 
<span end_timestamp="6510" timestamp="4940" id="2">Anotherone I want</span> 
<span end_timestamp="8910" timestamp="6610" id="3">another</span> 

Как выбрать элемент, то номер 4199 выше, чем атрибут «метки времени» и ниже «end_timestamp»

Ни один из них работали. Может быть, я должен создать условие?

$("[timestamp]:gt(4199),[end_timestamp]:lt(4199)").addClass("highlight"); 

$("[timestamp]:gt(4199)[end_timestamp]:lt(4199)").addClass("highlight"); 

ответ

7

Селекторы :gt и :lt работают на индексы в коллекции, а не на значения атрибутов. В вашем случае вы будете использовать filter:

$("[timestamp][end_timestamp]") 
    .filter(function() { 
     return this.getAttribute("timestamp") < 4199 
      && 4199 < this.getAttribute("end_timestamp"); 
    }) 
    .addClass("highlight"); 
1

Создано JSFiddle здесь: http://jsfiddle.net/xrnzc5qy/1/

var testTime = 4199; 

function findTime(time) { 
    $('span').each(function() { 
     if (time > $(this).attr('timestamp') && time < $(this).attr('end_timestamp')) { 
      //Highlight matching element 
      $(this).css('color', 'red'); 
     } 
    }); 
} 

findTime(testTime); 
Смежные вопросы