Как заменить идентификатор div переменной?

0
$('#divsT > div').hide(); //works
$('#divsT > div').eq(xdiv).show();  //works

Мне нужно заменить #divsT на переменную, но здесь что-то не так:

var a = $(this).parent().attr('id');  //result: xdivsT
var b = a.replace("x", "");  // result: divsT
var c = $('#' + b);  // should be #divsT
c > div.hide();  // doesn't work
c > div.eq(xdiv).show();  // doesn't work
Теги:

3 ответа

1
Лучший ответ

Я просто предлагаю вам использовать .find()

$(c).find('> div').hide(); 
$(c).find('> div').eq(xdiv).show();
  • 0
    Сатпал, есть ли способ избежать c объекта. Что-то вроде: $('#' + b) > div.hide();
  • 0
    @bonaca, вы можете использовать $('#' + b + ' > div').hide(); Конкатенация простых строк
Показать ещё 1 комментарий
1

c - переменная, содержащая объект jQuery, поэтому вам нужно использовать один из этих контекстных селекторов:

$('> div', c).hide(); 
$('> div', c).eq(xdiv).show();
0

Вы можете использовать это.

var a = $(this).parent().attr('id');  //result: xdivsT
var b = a.replace("x", "");  // result: divsT
var c = '#' + b;  // should be #divsT
$('+c+' > div).hide();  // doesn't work
$('+c+' > div).eq(xdiv).show();
  • 0
    Дипак, я получил ошибку, div is not defined !

Ещё вопросы

Сообщество Overcoder
Наверх
Меню