jquery不接受带引号的变量

时间:2016-04-09 23:17:57

标签: javascript jquery

我试图获得改变" top"的功能。和"左"各种div元素的属性接受一个参数,其中我基本上在变量的值周围加上引号。

function inQuotes(l) {
    return '"' + l + 'px"';
}

function Rearrange(k, topleft) {
    $(y).css("top", inQuotes(topleft[0])).css("left", inQuotes(topleft[1]));
}

其中y是带

的div元素
position: absolute

位于具有

的容器div中
position:relative

和topleft是一个包含2个值的数组,我希望移动div的顶部和左侧像素数。但是,当我调用它时,脚本不会运行该函数,忽略它并运行脚本的其余部分。

我已经完成并测试了两个功能的所有部分,并得出结论:

inQuotes(l)返回" lpx"正如所料,因此inQuotes(40)将返回" 40px"。 (通过运行测试

alert(inQuotes(40));

警告" 40px"。)

jquery选择器工作;例如,如果y =" #demo",则其他jquery方法按预期运行。

如果z =" 40px",那么

$(y).css("top", z);

按预期运行。

这让我觉得inQuotes没有返回一个字符串,但是它返回了什么?任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:4)

  

这让我觉得inQuotes没有返回一个字符串,但是它返回的是什么?

它正在返回"lpx"。 (这不是"lpx",就像你在JS 代码中为文本文字所写的那样,它是一个字面上包含"lpx"的字符串,双引号是<的一部分EM>值。)

现在是一个有效的CSS长度值?你会在样式表中写下top: "1px"吗?不,当然你不会。

所以摆脱双引号。