Search code examples
jqueryhtmlinnerhtmlgetelementsbytagnamegetelementsbyclassname

getElementsBy the first span in a class


I have tried changing the HTML text of the first button in HTML using the following and it worked:

var list = document.getElementsByTagName('button')[0];
list.innerHTML = "AAA";

But I am looking for a better solution where I can specify the exact "location" of the button. For example:

document.getElementsByClassName('filter. > .btn-group > button').innerHTML = 'AAAA';

The snippet is given below:

var list = document.getElementsByTagName('button')[0];
list.innerHTML = "AAA";


//I am looking something like the below:

//document.getElementsByClassName('filter. > .btn-group > button > span > .multiselect-selected-text').innerHTML = 'AAAA';
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="filter">

<div class="btn-group"><button type="button" class="multiselect dropdown-toggle btn btn-default" data-toggle="dropdown" title="None selected"><span class="multiselect-selected-text">None selected</span> <b class="caret"></b></button><ul class="multiselect-container dropdown-menu"><li><a tabindex="0"><label class="checkbox"><input type="checkbox" value="0"> AA</label></a></li><li><a tabindex="0"><label class="checkbox"><input type="checkbox" value="1"> BB</label></a></li></ul></div>

<div class="btn-group"><button type="button" class="multiselect dropdown-toggle btn btn-default" data-toggle="dropdown" title="None selected"><span class="multiselect-selected-text">None selected</span> <b class="caret"></b></button><ul class="multiselect-container dropdown-menu"><li><a tabindex="0"><label class="checkbox"><input type="checkbox" value="0"> AA</label></a></li><li><a tabindex="0"><label class="checkbox"><input type="checkbox" value="1"> BB</label></a></li></ul></div>

</div>


Solution

  • use a querySelector:

    document.querySelector('.filter > .btn-group > button').innerHTML = 'AAAA';