Как изменить стиль div #id, который содержит выбранный .class

0

Я пытаюсь изменить стиль div #info_frame который содержит класс nazwa_klasy_display и я не могу это исправить.

$('.box').mouseenter(function() {       
   //show up scores
   $( this ).children( '.scores' ).css( 'display', 'block' );

   nazwa_klasy = $( this ).attr('class').split(' ')[1];

   nazwa_klasy_display = nazwa_klasy.split('_')[1];
   if ($('#info_frame').has(nazwa_klasy_display)) 
   {
      $('#info_frame .'+nazwa_klasy_display).style.display ="block";    
   }
});
  • 0
    Что не так с $('#info_frame .'+nazwa_klasy_display).css('display', 'block'); ?
Теги:

3 ответа

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

вы смешиваете jQuery с простым Js:

либо вы используете

/* chain a jQuery method, e.g. show()  */
$('#info_frame.'+nazwa_klasy_display).show()

или

/* access to the dom node before using plain js */
$('#info_frame.'+nazwa_klasy_display).get(0).style.display = "block";  
  • 0
    Что вы думаете о $('#info_frame .'+nazwa_klasy_display)[0] ?
  • 0
    лучший ярлык для get (0), но применительно только к одному элементу прирост производительности не будет заметен. это было просто, чтобы показать доступ к узлу DOM
0

Если мое понимание верное, вы ищете <div>, у которого есть идентификатор info_frame и класс nazwa_klasy_display тогда вам нужно исправить ваш селектор CSS. у вас там есть место, когда этого не должно быть.

$('#info_frame.'+nazwa_klasy_display)

селектор #info_frame.[nazwa_klasy_display] будет искать все, что имеет класс nazwa_klasy_display который является потомком *#info_frame

0
$("#info_frame").hasClass('.'+nazwa_klasy_display).css('display','block');

попробуй это

  • 0
    console: у объекта # <error> нет метода 'css'
  • 0
    попробуйте приведенный выше код

Ещё вопросы

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