По какой-то причине это работает:
var oldText = $("#tayke li:eq(" + theIndex + ")" ).text();
Но это не так:
var tayke_li = "#tayke li:eq(" + theIndex + ")" var oldTest = $( tayke_li ).text();
Примечание: индекс является целым числом.
Работает в обе стороны. Я переделал это, и это сработало. Проверьте переменную theIndex на предмет изменений и области действия. Попробуйте заменить его жестко закодированным 1
добавление в вопрос информации о версии jQuery и спецификации браузера.
1001 * попробовать *
var oldText = $("#tayke li:eq("+parseInt(theIndex)+")").text();
или
var oldText = $("#tayke li").eq(theIndex).text();
Имеет ли значение, если поставить точку с запятой в конце строки:
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
theIndex
String()
tayke_li
Требуется точка с запятой?
Вы рекомендуете использовать точки с запятой после каждого оператора в JavaScript?
Каковы последствия этого бита JavaScript?
Стоит ли использовать точки с запятой в JavaScript?
http://www.webmasterworld.com/forum91/521.htm