jQuery选择器 :eq 不能识别变量的问题解决方案
问题:
js语法中,引号内变量会直接解释为字符串,因此使用:eq()时参数将被识别为字符串而不是变量指代的内容
如下错误写法:
$('#a').children('p:eq(idx)').addClass('red');
解决方案:
方法一
使用字符串拼接,将变量内容放在引号外部
如下正确写法:
$('#a').children('p:eq('+idx+')').addClass('red');
方法二
根据实际情况变通写
$('#a').find('p').eq(idx).addClass('red');
注意:
变量如需要加工,建议使用括号将加工内容包裹在内,否则易出现错误
如下错误写法(未包裹):idx-1应该添加括号
$('#a').children('p:eq('+idx-1+')').addClass('red');