每个方法中的if-else(jQuery)

时间:2018-11-21 07:52:40

标签: javascript jquery

以下代码返回以下结果:

0: 000,
1: 100,
2: 200,
...
40: 4000

我想添加一个if-elsevar minValue === 100; var maxValue === 300并仅显示带有value.innerText <= minValue && value.innerText >= maxValue

的元素

如何将其添加到此代码中? +如何为这些元素添加函数,例如,如果已经有函数.click();

,则满足条件的任何元素
var labels = $('.st-weight-class').find('.filter-panel--option-list label');

labels.each(function (index, value) {
  console.log(index + ': ' + value.innerText);
});

3 个答案:

答案 0 :(得分:1)

您可以只使用filter

function getLabelsInRange( labels, minValue, maxValue) {
  return labels.filter( label => parseInt( label.innerText ) >= minValue && parseInt( label.innerText ) <= maxValue );
}

然后,通过使用

,它将返回minValuemaxValue范围内的所有标签
let matchingLabels = getLabelsInRange( labels, 100, 300 );

我确实改变了您的病情,因为我相信您希望一切都在minValue >= x >= maxValue范围内

答案 1 :(得分:0)

var minValue === 100; var maxValue === 300; 

那不是有效的javascript分配。也许你想说:

var minValue = 100; var maxValue = 300; 

是什么让您无法按问题中的定义直接输入?

if(value.innerText<minValue || value.innerText>maxValue) {
    console.log(index + ': ' + value.innerText);
}

var labels = $('.st-weight-class').find('.filter-panel--option-list label');

var minValue = 100;
var maxValue = 300;

labels.each(function (index, value) {
  if(value.innerText<minValue || value.innerText>maxValue) {
    console.log(index + ': ' + value.innerText);
  }
  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class='st-weight-class'>
  <div class='filter-panel--option-list'>
    <label>10</label>
    <label>50</label>
    <label>70</label>
    <label>90</label>
    <label>100</label>
    <label>200</label>
    <label>250</label>
    <label>300</label>
    <label>350</label>
    <label>400</label>
    <label>650</label>
    <label>900</label>
  </div>
</div>

答案 2 :(得分:0)

您可以在每种方法内附加click事件并添加条件

尝试一下:

var labels = $('.st-weight-class').find('.filter-panel--option-list label');

var minValue = 100;
var maxValue = 300;

labels.each(function (index) {
    $(this).click(function() {
        if($(this).text()>=minValue && $(this).text()<=maxValue) {
            console.log(index + ': ' + $(this).text());
        }
    });   
});