我正在尝试将一个添加到变量中,但不起作用。这是为什么?
var numElementsDisplay = "5";
$('.searchdropdown .element:nth-child(n+' + numElementsDisplay + 1 + ')').attr('style', $(this).attr('style') + '; ' + 'display: none !important');
答案 0 :(得分:1)
您需要使用()
自动换行数字操作,否则将执行字符串连接
var numElementsDisplay = "5";
$('.searchdropdown .element:nth-child(n+' + (+numElementsDisplay + 1) + ')').attr('style', $(this).attr('style') + '; ' + 'display: none !important');
也不知道为什么要使用!important
,但如果要将display
规则附加到现有的内联规则集中,则必须使用回调,否则this
不会引用当前元素
$('.searchdropdown .element:nth-child(n+' + (+numElementsDisplay + 1) + ')').attr('style', function () {
//also will have to use a callback
return $(this).attr('style') + '; ' + 'display: none !important'
});
但如果您想使用!important
,更好的解决方案是使用类似
$('.searchdropdown .element:nth-child(n+' + (+numElementsDisplay + 1) + ')').addClass('hidden');
然后
.hidden {
display: none !important
}
答案 1 :(得分:0)
你在这里:
$('.searchdropdown .element:nth-child(' + (Number(n) + Number(numElementsDisplay) + 1) + ')').attr(...)
我不知道在这种情况下var n
是什么。
希望这有帮助。
答案 2 :(得分:0)
您已将字符串“5”分配给numElementsDisplay 将其更改为
var numElementsDisplay = 5;
一切都会好的
答案 3 :(得分:0)
我不清楚你是想让numElementsDisplay是一个整数(例如5 + 1 = 6)还是一个字符串(numElementsDisplay + 1 = numElementsDisplay1)。如果你想要第一个案例,那么你需要使用:
parseInt(numElementsDisplay + 1)
。
否则你应该在引号中加上1:(numElementsDisplay + "1")
。