0

这是一个学校项目,有点热或不热。用户获得 2 张图片放置在 div face1 或 div face2 中。他可以通过按左/右或 s/d 来选择他最喜欢的。

我在函数的 if 语句中遇到以下问题:我知道当按下代码为 37(左箭头)和 83(s 键)的键时,用户选择了“face1”。

当我在页面上显示“var w”时,它会正确显示#face1。现在当我在winnerid中的#face1周围添加引号时,它正确显示“#face1” 但是现在当想要获取div #face1中的文本时,它不会返回任何内容,尽管那里有一个数字

<div id="face1"> 432 </div>

$(document).keyup(function (e) {
  if (e.which == 37 || e.which == 83) {
  var w = '#face1';
  var winnerid ='"' + w + '"';
  var id= $(winnerid).text();
  $("h1 span").text(id);      

  }
  else if(e.which == 39 || e.which == 68) {
  $("h1 span").text("right");
  }
});
4

3 回答 3

1

您不想包含 jQuery 选择器的引号。只需使用:

var w = '#face1';
var id= $(w).text();

jQuery 函数 ( $()) 接受一个字符串(除其他外)作为选择器(除其他外)。所以简单地传递一个包含的字符串变量#face1是一样的:

var id = $('#face1').text();
于 2013-04-04T16:29:11.627 回答
0

不要在选择器中添加引号。

代替

var winnerid ='"' + w + '"';
var id= $(winnerid).text();

var id= $(w).text();
于 2013-04-04T16:29:02.483 回答
0

您可以删除这两个语句的第二行

  var w = '#face1';
  var winnerid ='"' + w + '"';    < ----  Remove this 
  var id= $(winnerid).text();

var w = '#face1';
 var id= $(w).text();
于 2013-04-04T16:29:04.070 回答