添加到变量

时间:2015-07-06 03:36:24

标签: javascript jquery

我正在尝试将一个添加到变量中,但不起作用。这是为什么?

var numElementsDisplay = "5";

$('.searchdropdown .element:nth-child(n+' + numElementsDisplay + 1 + ')').attr('style', $(this).attr('style') + '; ' + 'display: none !important');

4 个答案:

答案 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")