I want to display an icon next to "more" and "less" after clicking the less/more.
How to make multiple buttons/id's like this? Basing on checked solution. –
function showme(id) {
var divid = document.getElementById(id);
var clicky = document.getElementById("clicky");
if (divid.style.display == 'block') {
divid.style.display = 'none';
clicky.innerHTML = "MORE";
} else {
divid.style.display = 'block';
clicky.innerHTML = "LESS";
}
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body>
<i>Click on more. I want to have two different icons one for more one for less always after click.</i><br>
<div class="tp-caption rev-btn rev-hiddenicon rs-hover-ready rev-mre-btn" onclick="showme('widget');" href="javascript:;" id="clicky">MORE <i class="fa fa-car"></i></div>
<div id="widget" style="display:none;">
This is a widget
</div>
</body>
</html>
Please change your JS code like below:-
function showme(id) {
var divid = document.getElementById(id);
var clicky = document.getElementById("clicky");
if (divid.style.display == 'block') {
divid.style.display = 'none';
clicky.innerHTML = 'MORE <i class="fa fa-car"></i>';
} else {
divid.style.display = 'block';
clicky.innerHTML = 'LESS <i class="fa fa-car"></i>';
}
}
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body>
<i>Click on more. I want to have two different icons one for more one for less always after click.</i><br>
<div class="tp-caption rev-btn rev-hiddenicon rs-hover-ready rev-mre-btn" onclick="showme('widget');" href="javascript:;" id="clicky">MORE <i class="fa fa-car"></i></div>
<div id="widget" style="display:none;">
This is a widget
</div>
</body>