2015-10-03 4 views
3

У меня есть кнопки с несколькими уровнями, так что я выбираю одну из кнопок уровня 1, и я хочу показать кнопку на следующем уровне.Как получить значение выбранного элемента?

Теперь я хочу получить значение кнопки, которую я выбрал с кодом JavaScript. Ниже мой код. Я приношу свой код для показа кнопок многоуровневых:

<script type="text/javascript"> 
 
var menuArray = ['0']; 
 

 
$(function() { 
 
    $('.showButton').click(function() { 
 
     //get target div to show 
 
     var targetID = $(this).attr('target'); 
 
     
 
     //hide all divs 
 
     $('.targetDiv').hide(); 
 
     
 
     //show all menu items in chain 
 
     var found = false; 
 
     
 
     //get containing div target number 
 
     var current = $(this).parent().attr('id').toString().charAt(3); 
 
     var length = menuArray.length; 
 
     
 
     //remove elements of array lower than clicked button 
 
     for(var i=0; i<length; i++) { 
 
      //check if next menu item is a button just pressed and never delete root menu (elem == 0) 
 
      if(menuArray[0] == current || menuArray[0] == 0) { 
 
\t \t \t $(this).addClass('selected').siblings().removeClass('selected'); 
 
       found = true; 
 
      } 
 
      //hide div if no longer in menu structure and remove from menuArray[0] 
 
      if(!found) { 
 
       $('#div' + menuArray[0]).hide(); 
 
       menuArray.shift(); 
 
      } 
 
     }; 
 
     
 
     //add new target to beginning of array 
 
     menuArray.unshift(targetID); 
 
     
 
     //show each element in the menu structure 
 
     menuArray.forEach(function(elem, index) { 
 
      if(index != 0) { 
 
       $('#div' + elem).show(); 
 
      } 
 
     }); 
 
     
 
     //get div of target to show sliding effect 
 
     var targetDiv = $('#div' + menuArray[0]); 
 
     
 
     //show the div as the last element on the page 
 
     targetDiv.insertAfter('#div' + menuArray[1]); 
 
     
 
     //slide out last div 
 
     targetDiv.show('slide'); 
 
\t \t 
 
    }); 
 
\t 
 
}); 
 
</script>
<div id="div0" class="buttons"> 
 
    <div class="showButton" target="1">A_Level1</div> 
 
    <div class="showButton" target="1">B_Level1</div> 
 
    <div class="showButton" target="1">C_Level1</div> 
 
</div> 
 

 
<!-- div1 Branch --> 
 
<div id="div1" class="targetDiv"> 
 
    <div class="showButton" target="6">A_Level2</div> 
 
    <div class="showButton" target="6">B_Level2</div> 
 
\t <div class="showButton" target="6">C_Level2</div> 
 
</div> 
 

 

 
<div id="div6" class="targetDiv"> 
 
    <div class="showButton" target="7">A_Level3</div> 
 
    <div class="showButton" target="8">B_Level3</div> 
 
\t <div class="showButton" target="9">C_Level3</div> 
 
</div>

Что мне делать?

+0

, если я правильно читать это, вы хотите получить значение 'target' атрибута, верно? – Jesse

+0

yes Я хочу получить значение выбранной кнопки, например, из них «A_level1, B_level1, C_level1» и на следующем уровне из них «A_level2, B_level2, C_level3», ..... –

+0

Для будущих зрителей этого page/comments, цель заключалась не в том, чтобы получить целевой атрибут – Jesse

ответ

1

Внутри вашей анонимной функции внутри $('.showButton').click(function() { вы можете получить доступ к значению с помощью $(this).text(); (или $(this).html();, если вам нужны какие-либо элементы html).

Смотрите следующий пример использования этого метода ::

$('.showButton').click(function(){ 
 
    $('#log').val($(this).text()); 
 
});
.showButton{ 
 
    cursor:pointer; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="div0" class="buttons"> 
 
    <div class="showButton" target="1">A_Level1</div> 
 
    <div class="showButton" target="1">B_Level1</div> 
 
    <div class="showButton" target="1">C_Level1</div> 
 
</div> 
 

 
<!-- div1 Branch --> 
 
<div id="div1" class="targetDiv"> 
 
    <div class="showButton" target="6">A_Level2</div> 
 
    <div class="showButton" target="6">B_Level2</div> 
 
\t <div class="showButton" target="6">C_Level2</div> 
 
</div> 
 

 

 
<div id="div6" class="targetDiv"> 
 
    <div class="showButton" target="7">A_Level3</div> 
 
    <div class="showButton" target="8">B_Level3</div> 
 
\t <div class="showButton" target="9">C_Level3</div> 
 
</div> 
 
<hr> 
 
<textarea id='log'></textarea>

+0

спасибо @Jesse, я думаю, что мой код javascript не очень хорош. Я хочу сначала показать кнопку первого уровня, после того как выбрать из них, она показывает кнопку уровня 2 и т. Д. Учитывая то, что я выбираю, у меня есть запрос в базе данных по выбранным кнопкам. , пожалуйста, помогите мне. –

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