出于某种原因,这个工程:如何将变量传递给jQuery查询?
var oldText = $("#tayke li:eq(" + theIndex + ")").text();
但这并不:
var tayke_li = "#tayke li:eq(" + theIndex + ")"
var oldTest = $(tayke_li).text();
注:theIndex是一个整数。
出于某种原因,这个工程:如何将变量传递给jQuery查询?
var oldText = $("#tayke li:eq(" + theIndex + ")").text();
但这并不:
var tayke_li = "#tayke li:eq(" + theIndex + ")"
var oldTest = $(tayke_li).text();
注:theIndex是一个整数。
这有什么区别,如果你把分号在随后行的结尾:
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?
这两种方式都可以。我重做了它,它工作。 检查变量和范围的索引变量。尝试将其替换为硬编码1
将jQuery版本信息添加到问题中,并且浏览器规范也不错。
oldText!= oldTest是唯一的解释,为什么这不应该工作恕我直言;)但这不是我作为答案。 – naugtur 2010-02-12 13:33:18
尝试
var oldText = $("#tayke li:eq("+parseInt(theIndex)+")").text();
或
var oldText = $("#tayke li").eq(theIndex).text();
你';第2行之前'错过或者这只是一个错字? – Darmen 2010-02-12 13:19:35
与第一个比较的另一个错字是oldText变成了oldTest(* x - > s *)。如果你警告,看看它是否有效,它会失败.. – 2010-02-12 13:22:28
当你说它不起作用,它只是没有选择你想要的或是代码抛出一个错误? – 2010-02-12 13:26:01