(function (){
var num = parseInt($('body').attr('data-site')) + 1,
theul = $(".submenu li:nth-child(" + num + ") a"),
newNum = num - 1,
theNewUl = $(".submenu li:nth-child(" + newNum + ") a");
console.log(theul);
theul.addClass('activex');
console.log(theNewUl);
theNewUl.addClass('lastsl');
})();
您好,当我尝试运行此脚本控制台时说:
“未捕获的语法错误,无法识别的表达式:li:nth-child”
Althoung我在此脚本之前链接了jQuery源,
感谢anwsers
答案 0 :(得分:3)
.data("foo")
支持.attr("data-foo")
。:eq()
selector。这是基于零的,这是你似乎想要的。.addClass()
。 10
时必须使用基数parseInt()
,或者08
之类的数字将被解释为八进制。num
实际上包含一个数字,或parseInt()
将返回NaN
,这将破坏您的以下代码。$
的jQuery对象的前缀变量。这是一个有用的约定。尝试:
var num = parseInt($('body').data("site"), 10),
$theul = $(".submenu li:eq(" + num + ") a").addClass('activex'),
$theNewUl = $(".submenu li:eq(" + (num-1) + ") a").addClass('lastsl');