【问题标题】:How do I pass a variable into a jQuery query?如何将变量传递给 jQuery 查询?
【发布时间】:2010-02-12 13:07:22
【问题描述】:

由于某种原因,这行得通:

var oldText = $("#tayke li:eq(" + theIndex + ")" ).text();

但这不是:

var tayke_li =  "#tayke li:eq(" + theIndex + ")"
var oldTest = $( tayke_li ).text();

注意:theIndex 是一个整数。

【问题讨论】:

  • 您在第 2 行之前错过了 ; 还是这只是一个错字?
  • 与第一个相比,另一个错字是 oldText 变成了 oldTest (x -> s)。如果您警告它是否有效,它将失败..
  • 当你说它不起作用时,是没有选择你想要的还是代码抛出错误?
  • 哇,盖比,不错的收获。我是个白痴。我想就是这样。它现在似乎正在工作。编辑:我是 Stack Overflow 的新手,所以我不知道这是否被允许,但如果您对该回复做出正式回答,我会将其标记为已接受。
  • 使用像 WebStorm 这样的优秀 IDE,您会为未使用的变量加上下划线和许多其他功能。对于专业的 javascript 开发人员来说,这真的是物有所值。

标签: javascript jquery variables


【解决方案1】:

它是双向的。我已经重做了它并且它有效。 检查 theIndex 变量的更改和范围。尝试用硬编码的 1 替换它

在问题中添加 jQuery 版本信息,浏览器规范也会很好。

【讨论】:

  • oldText != oldTest 是唯一解释为什么这不起作用恕我直言;)但这不是我要回答的问题。
【解决方案2】:

如果你把分号放在那行的末尾会有什么不同吗:

var tayke_li =  "#tayke li:eq(" + theIndex + ")"; //<---

我已经建立了一个简单的例子,它工作正常:

alert($("#tab1").length);
var s = "#tab" + String(1); //alerts "1"
alert(s);  //alerts "#tab1"
alert($(s).length); //alerts 1

另外,尝试使用String()theIndex 显式转换为字符串。您是否仔细检查了tayke_li中存储的内容

需要分号吗?

Do you recommend using semicolons after every statement in JavaScript?

What is the consequence of this bit of javascript?

Should I use semicolons in JavaScript?

http://www.webmasterworld.com/forum91/521.htm

【讨论】:

  • 啊,只是一个错字。虽然没有区别
  • 刚刚试过 var tayke_li = "#tayke li:eq(" + String(theIndex) + ")";没有运气
  • 试试var tayke_li = "#tayke li:eq(" + theIndex.toString() + ")"
  • alert("#tayke li:eq(" + theIndex + ")");给你?
  • 达门,还是不行。詹姆斯,它给了我#tayke li:eq(3)(当我点击第三个列表项时)
【解决方案3】:

试试

var oldText = $("#tayke li:eq("+parseInt(theIndex)+")").text();

var oldText = $("#tayke li").eq(theIndex).text();

【讨论】:

    猜你喜欢
    • 2017-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 2015-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多