.is(':even')不适用于变量选择器?

时间:2013-02-05 01:00:26

标签: jquery variables jquery-selectors

我使用jQuery检查元素是奇数还是甚至

 $("#map183").parent().is(':even');

这将返回 true false ,具体取决于元素的位置。

然而,这将始终返回false

   function whereAreWe(myself,range){
        var parent = myself.parent();
        var position = parent.is(':even');
        alert(position);
        //outputs false
   }

   $('.hasSVG').on('click', function(){
        whereAreWe($(this),2);
   });

我在这里有一个工作示例:JSFiddle

在示例中,您将看到我正在尝试查看所述元素的父(.line)是奇数还是偶数。

1 个答案:

答案 0 :(得分:2)

这是因为:even选择器仅在列表中有用 但是父母只指一个对象。 因此,即使列表1也没有意义。

但是,您有ID表示行号

var position = parent.attr("id").substr(4) % 2 == 0;
console.log(position);

从“lineX”中提取id并删除“line”-string,可以得到行号X. 使用MOD 2进行检查(或者使用按位AND和1:)

var position = ((parent.attr("id").substr(4) & 1) == 1);

会做到这一点。