2017-02-20 2 views
1

Здравствуйте, я новичок в ExtJS, пожалуйста, помоги мне знать Ext.get()прибудет класс с использованием Ext.get() в ExtJS

Это работает:

Ext.get('tag2').hide(); // worked well on with Id 
    <div id ="tag2">using id</div><!--given with id--> 

Теперь это проблема

Ext.get('tag2').hide()//hiding only id not class 
<div class ="tag2">using class</div><!--given with class--> 

Не работает на классе. посмотрите полный код:

<!DOCTYPE html> 
<html> 
    <head> 
     <link href="https://cdnjs.cloudflare.com/ajax/libs/extjs/6.0.0/classic/theme-neptune/resources/theme-neptune-all.css" rel="stylesheet" /> 
     <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/extjs/6.0.0/ext-all.js"></script> 
     <script type="text/javascript"> 
     Ext.onReady(function(){ 
      Ext.get('tag2').hide()//hiding only id not class 
      Ext.create('Ext.Button', { 
       renderTo: Ext.getElementById('helloWorldPanel'), 
       text: 'show', 
       listeners: { 
        click: function() { 
        this.hide(); 
        }, 
        hide: function() { 
        Ext.get('tag1').hide(); 
        Ext.get('tag2').show();//not working hear 
        } 
       } 
      }); 
     });   
     </script> 
    </head> 
    <body> 
    <div class ="tag1">Test Div</div> 
    <div class ="tag2">using class</div><!--given with class--> 
    <div id ="tag2">using id</div><!--given with id--> 
    <div id = 'helloWorldPanel' /> <!-- panel will be rendered here-- > 
    </body> 
</html> 
+0

get требует идентификатора не класса. это может помочь: http: //stackoverflow.com/questions/13379148/extjs-get-element-by-div-class –

+0

Я предлагаю вам начать использовать селекторы с '.down' или' itemId' вместо использования Ext.get, который на самом деле является плохой практикой, пока вы должны указать идентификатор для выбранного компонента. – qmateub

ответ

2

Используйте следующую вместо GET. Получить принимает id, для запросов к классам, вам необходимо использовать .

Ext.select('.tag2').hide(); 
+0

Спасибо, этот ответ заслуживает голосования. –

1

ОБНОВЛЕНО

Ext.get() использует идентификатор для поиска элемента. Ext.select (селектор) - используется для доступа к DOM-элементу с классом селектора

<!DOCTYPE html> 
<html> 
    <head> 
     <link href="https://cdnjs.cloudflare.com/ajax/libs/extjs/6.0.0/classic/theme-neptune/resources/theme-neptune-all.css" rel="stylesheet" /> 
     <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/extjs/6.0.0/ext-all.js"></script> 
     <script type="text/javascript"> 
     Ext.onReady(function(){ 
      var tag = Ext.get('tag'); 
      var tagTwo = Ext.select('.tag2'); 
      console.log(tag); 
      console.log(tagTwo); 
      tag.hide(); // hide by ID 
      tagTwo.hide(); // hide all divs with tag2 class value 
     });   
     </script> 
    </head> 
    <body> 
    <div id="tag">Test Div</div> 
    <div class="tag2">Test Div2</div> 
    <div class="tag2">Test Div3</div> 
    </body> 
</html> 
+0

ok спасибо за повтор, так что ясно, что мы не можем использовать Ext.get() для класса. Rite? –

+0

@KishanCS Посмотрите на изменения, которые я сделал в своем ответе –

Смежные вопросы