jQuery变量问题

时间:2013-06-17 22:27:17

标签: javascript jquery

快速浏览,当用户点击带有锚标记的链接时,它会在目标网页上打开与该锚点最近的隐藏div。

我的问题看起来非常基本我无法理解。

为什么这样做(指定要设置高度的变量,在本例中为height7):

var height7 =  100;

if(window.location.hash) {
      var hash = window.location.hash.substring(1); 
      $('a[name='+hash+']').closest('[id^="option"]').show();
      $('a[name='+hash+']').closest('[id^="option"]').height(height7);
} else {
      // No hash found
}

这不起作用(在这种情况下尝试构建我要打开的div的名称,将其放在变量中并将其完全按照上面的方式传递给height()函数,由于某种原因它不接受变量):

if(window.location.hash) {
     var hash = window.location.hash.substring(1); 
     var option_name = $('a[name='+hash+']').closest('[id^="option"]').attr("id");
     var hash_div_height_id = "height" + option_name.substring(6);
     alert(hash_div_height_id);
     $('a[name='+hash+']').closest('[id^="option"]').show();
     $('a[name='+hash+']').closest('[id^="option"]').height(hash_div_height_id);
} else {
      // No hash found
}

2 个答案:

答案 0 :(得分:1)

您似乎分配字符串值

var hash_div_height_id = "height" + option_name.substring(6);

     .height(hash_div_height_id);

它应该是一个数字。

因此hash_div_height_id类似于height + something

设置height属性时需要

  

表示像素数的整数,或带有的整数   附加的可选计量单位(作为字符串)。

答案 1 :(得分:1)

您在每种情况下分配不同的值:

$('a[name='+hash+']').closest('[id^="option"]').height(height7); //height = 100

$('a[name='+hash+']').closest('[id^="option"]').height(hash_div_height_id); //height = "height" + option_name.substring(6)