jQuery-无法识别的表达式:li:n子级?
您好,当我尝试运行此脚本时,控制台显示: 未捕获的语法错误,无法识别的表达式:li:n子级 Althoung我在这个脚本之前链接了jQuery源代码 谢谢你的邀请jQuery-无法识别的表达式:li:n子级?,jquery,css-selectors,Jquery,Css Selectors,您好,当我尝试运行此脚本时,控制台显示: 未捕获的语法错误,无法识别的表达式:li:n子级 Althoung我在这个脚本之前链接了jQuery源代码 谢谢你的邀请 您可以使用.data(“foo”)来支持.attr(“data foo”) 你可以用。它是以零为基础的,这就是你想要的 您不需要在单独的行中调用.addClass() 使用parseInt()时必须使用基数10,否则像08这样的数字将被解释为八进制 您需要确保num实际上包含一个数字,或者parseInt()将返回NaN,这将中断以下
.data(“foo”)
来支持.attr(“data foo”)
.addClass()
李>
parseInt()
时必须使用基数10
,否则像08
这样的数字将被解释为八进制num
实际上包含一个数字,或者parseInt()
将返回NaN
,这将中断以下代码$
为包含jQuery对象的变量添加前缀。这是一个有用的惯例.data(“foo”)
来支持.attr(“data foo”)
.addClass()
李>
parseInt()
时必须使用基数10
,否则像08
这样的数字将被解释为八进制num
实际上包含一个数字,或者parseInt()
将返回NaN
,这将中断以下代码$
为包含jQuery对象的变量添加前缀。这是一个有用的惯例$('body').attr('data-site')
是否可以转换为一个数字?console.log(num,“.submenu li:n子菜单(+num+”)a”)
这可能是因为'num'不是实际数字,请确保解析正确,并且'num'中实际有一个数字是$('body').attr('data-site')
实际可转换为数字?console.log(num,.submenu li:n子菜单(+num+)
这可能是因为'num'不是一个实际的数字,请确保解析是正确的,并且'num'中确实有一个数字。值得注意的是,:eq
和:nth child
是非常不同的事情。他们的文档强调了这样一个事实:nth child
是基于1的,但(更重要的是)它的功能不同:nth child
检索属于其父级的第n个子级的任何元素。这可以是多个元素,具体取决于选择器eq
检索所选内容中该索引处的单个元素。值得注意的是,:eq
和:n子元素
是非常不同的东西。他们的文档强调了这样一个事实:nth child
是基于1的,但(更重要的是)它的功能不同:nth child
检索属于其父级的第n个子级的任何元素。这可以是多个元素,具体取决于选择器eq
检索选择中该索引处的单个元素。
(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');
})();
var num = parseInt($('body').data("site"), 10),
$theul = $(".submenu li:eq(" + num + ") a").addClass('activex'),
$theNewUl = $(".submenu li:eq(" + (num-1) + ") a").addClass('lastsl');