如果x位置超过3个,则jquery将类添加到所有元素

时间:2018-11-30 21:01:51

标签: javascript jquery html

我有一个包含多个专栏的网站。每列可以有0-10行。 这些行包含各种元素,但始终具有特定的元素,该元素在每一行中都位于相同的x位置。

我想标识一列中多于3行的所有行。因此,如果有3个以上具有相同x位置的元素,我想遍历所有这些“特殊”元素并添加某个类:

let xPositions = []
let specialElements = $("span[aria-label='specific text']")
specialElements.each(function() { 
    xPositions.push(this.x) // obviously this.x does not work. How can I get x?
})
specialElements.each(function() { 
    let count = xPositions.reduce((cnt, val) => val == this.x ? cnt + 1 : cnt)
    if(count > 3){
        this.addClass('highlight')
    }
})

1 个答案:

答案 0 :(得分:0)

我知道我可能很幼稚,但我知道x是相对于父容器的位置,也许可以使用jquery position函数:

elPosition = $(this).position();
xPositions.push(elPosition.left);