<h1>
<br>
USA
<br>
<br>
<p style="margin-top:13px;" class="glyphicon glyphicon-chevron-down"></p>
<br>
<br>
Canada
</h1>
Without changing the HTML above, how can I get the value of Canada
with jQuery selector?
<h1>
<br>
USA
<br>
<br>
<p style="margin-top:13px;" class="glyphicon glyphicon-chevron-down"></p>
<br>
<br>
Canada
</h1>
Without changing the HTML above, how can I get the value of Canada
with jQuery selector?
If you want to get the last text-node value, then try this
var h1 = document.querySelector("h1");
var childNodes = h1.childNodes;
console.log(childNodes[childNodes.length -1 ].nodeValue);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1><br>USA<br><br><p style="margin-top:13px;" class="glyphicon glyphicon-chevron-down"></p><br><br>Canada </h1>
Equivalent jquery would be
var h1 = $("h1")[0];
If the markup style is consistent -- not prone to change, you can use xpath
.
You can also do something like this:
var value = $('h1').contents().filter(function() {
return this.nodeType == 3;
})[1];
Here i use nodeType == 3
, which selects text nodes.
Here you go:
var afterP;
var text = $('h1').contents().filter(function() {
if (this.nodeName == "P") {
afterP = true
}
return afterP && this.nodeType == 3;
}).text();
console.log(text);
Solution copied & enhanced from Get the text after span element using jquery