出于某种原因,这有效:
var oldText = $("#tayke li:eq(" + theIndex + ")" ).text();
但这不是:
var tayke_li = "#tayke li:eq(" + theIndex + ")"
var oldTest = $( tayke_li ).text();
注意:theIndex是一个整数。
答案 0 :(得分:1)
它有两种方式。我重做它并且它有效。 检查theIndex变量的变化和范围。尝试用硬编码1替换它
在问题中添加jQuery版本信息,浏览器规范也不错。
答案 1 :(得分:0)
如果你把分号放在那一行的末尾是否有任何区别:
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
此外,尝试使用theIndex
将String()
显式转换为字符串。您是否仔细检查了tayke_li
需要分号吗?
Do you recommend using semicolons after every statement in JavaScript?
What is the consequence of this bit of javascript?
答案 2 :(得分:0)
试
var oldText = $("#tayke li:eq("+parseInt(theIndex)+")").text();
或
var oldText = $("#tayke li").eq(theIndex).text();