Я создал кнопку и добавил галочки. так что, когда я нажимаю на кнопку, должна быть видна галочка.
Я попытался применить к кнопкам в моей таблице, используя элемент DOM имени класса, используя JavaScript.
Но это не работает
если я нажму кнопку, галочка появится на всех кнопках но я хочу это, когда нажимается конкретная кнопка так же, как радио-кнопка
Может кто-нибудь мне помочь
function show(target) {
// document.getElementById(target).style.visibility = 'visible';
var x = document.getElementsByClassName('fa-lg');
for (var i = 0; i < x.length; i++) {
//.log(x[i]);
x[i].style.visibility = 'visible';
}
}.fa-check-circle {
right: 30px;
position: absolute;
}
tr,
td {
color: deepskyblue;
font-size: 12px;
border-bottom: 2px dotted deepskyblue;
}
.btn.btn-xs {
border-radius: 0px;
font-size: 15PX;
background-color: whitesmoke;
}<!doctype html>
<html lang = "en">
<head>
<!-- Required meta tags -->
<meta charset = "utf-8">
<meta name = "viewport" content = "width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel = "stylesheet" href = "https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity = "sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin = "anonymous">
<!--font awesome-->
<script defer src = "https://use.fontawesome.com/releases/v5.0.10/js/all.js" integrity = "sha384-slN8GvtUJGnv6ca26v8EzVaR9DC58QEwsIk9q1QXdCU8Yu8ck/tL/5szYlBbqmS+" crossorigin = "anonymous"></script>
<title>Hello, world!</title>
<link rel = "stylesheet" href = "./main.css">
<link rel = "stylesheet" href = "./test.css">
</head>
<body>
<!--scripts-->
<!-- jQuery library -->
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- Latest compiled JavaScript -->
<script src = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src = "./test.js"></script>
<!-- <input maxlength = "3" size = "3" value = "10" id = "message">
<textarea type = "text" id = "name" maxlength = "100" placeholder = "Name your Idea" onkeyup = "textCounter(this,'message',100);"></textarea> -->
<!-- <button type = "button" class = "btn btn-xs " onclick = "show('loadingImage')">Medium Value</button>
<span class = "fa-stack fa-lg" id = "loadingImage" style = "visibility: hidden">
<i class = "fas fa-check-circle"></i>
</span> -->
<div class = "row">
<div>
<h2 class = "status">Rate the value of Your Idea will Provide</h2>
</div>
<div class = "row table-responsive">
<table class = "table table-responsive" id = "table">
<tbody id = "tbody">
<tr>
<td>
Client Experience
</td>
<td>
<button type = "button" class = "btn btn-xs" onclick = "show('loadingImage')">Low Value</button>
<span class = "fa-stack fa-lg" id = "loadingImage" style = "visibility: hidden">
<i class = "fas fa-check-circle"></i>
</span>
</td>
<td>
<button type = "button" class = "btn btn-xs " onclick = "show('loadingImage')">Medium Value</button>
<span class = "fa-stack fa-lg" id = "loadingImage" style = "visibility: hidden">
<i class = "fas fa-check-circle"></i>
</span>
</td>
<td>
<button type = "button" class = "btn btn-xs">High Value</button>
<span class = "fa-stack fa-lg">
<i id = "loadingImage" class = "fas fa-check-circle"></i>
</span>
</td>
</tr>
<tr>
<td>
Collaboration
</td>
<td>
<button type = "button" class = "btn btn-xs">Low Value</button>
<span class = "fa-stack fa-lg">
<i id = "loadingImage" class = "fas fa-check-circle"></i>
</span>
</td>
<td>
<button type = "button" class = "btn btn-xs">Medium Value</button>
<span class = "fa-stack fa-lg">
<i id = "loadingImage" class = "fas fa-check-circle"></i>
</span>
</td>
<td>
<button type = "button" class = "btn btn-xs">High Value</button>
<span class = "fa-stack fa-lg">
<i id = "loadingImage" class = "fas fa-check-circle"></i>
</span>
</td>
</tr>
<tr>
<td>
Money
</td>
<td>
<button type = "button" class = "btn btn-xs" onclick = "showIcon();">Low Value</button>
<span class = "fa-stack fa-lg">
<i id = "loadingImage" class = "fas fa-check-circle"></i>
</span>
</td>
<td>
<button type = "button" class = "btn btn-xs">Medium Value</button>
<span class = "fa-stack fa-lg">
<i id = "loadingImage" class = "fas fa-check-circle"></i>
</span>
</td>
<td>
<button type = "button" class = "btn btn-xs">High Value</button>
</td>
</tr>
<tr>
<td>
Time
</td>
<td>
<button type = "button" class = "btn btn-xs">Low Value</button>
</td>
<td>
<button type = "button" class = "btn btn-xs">Medium Value</button>
</td>
<td>
<button type = "button" class = "btn btn-xs">High Value</button>
</td>
</tr>
<tr>
<td>
Quality
</td>
<td>
<button type = "button" class = "btn btn-xs">Low Value</button>
</td>
<td>
<button type = "button" class = "btn btn-xs">Medium Value</button>
</td>
<td>
<button type = "button" class = "btn btn-xs">High Value</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</body>
</html>При нажатии на одну кнопку должна быть видна каждая отметка или должна быть видна только следующая отметка с этой кнопкой?
i++ вместо x++?
@ThumChoonTat Это может быть проблемой
Также отсутствует showIcon
Я был бы очень удивлен, если бы при этом не возникала ошибка типа «Невозможно прочесть свойство style of undefined». Вы не удосужились искать ошибки в консоли?
Также повторяющиеся идентификаторы - идентификаторы ДОЛЖНЫ быть уникальными
Я отредактировал свой код и описание



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Пропустить текущий выбранный элемент через функцию.
<button type = "button" class = "btn btn-xs " id = "btn2" onclick = "show(this)">Medium Value</button>
Затем найдите следующего брата или сестру, и тогда вы сможете его увидеть.
function show(target) {
target.nextElementSibling.style.visibility = 'visible'
}
-------- В каждой строке должен быть выбран один элемент. -------------
function show(target) {
var tds = target.parentElement.parentElement.children;
for(var i = 0; i< tds.length; i++)
{
var spanElement = tds[i].getElementsByClassName('fa-lg')[0];
if (spanElement)
{
if (tds[i].getElementsByClassName('fa-lg')[0].style !== undefined)
tds[i].getElementsByClassName('fa-lg')[0].style.visibility = 'hidden';
else
tds[i].getElementsByClassName('fa-lg')[0].css('visibility', 'hidden');
}
}
target.nextElementSibling.style.visibility = 'visible'
}
Спасибо @Ghazni, но он не работает как радио-кнопка
Переключатель? вы имеете в виду радиокнопку нацеливания? Пожалуйста, дайте мне образец кода для переключателя, чтобы лучше понять.
Я видел это на скрипке, это просто пример, я хочу, чтобы мой код был таким. jsfiddle.net/44Zfv/724
вы имеете в виду, что одновременно может быть выбрана только одна кнопка в одной строке?
Вы также можете сделать это одним из следующих способов
function findAncestor (el, cls) {
while ((el = el.parentElement) && !el.classList.contains(cls));
return el;
}
function show(target) {
var row = findAncestor(target, 'test');
var tick = row.getElementsByClassName("fa-lg");
Array.prototype.forEach.call(tick, function(el) {
el.style.visibility = 'hidden'
});
target.nextElementSibling.style.visibility = 'visible'
}.fa-check-circle {
right: 30px;
position: absolute;
}
tr,
td {
color: deepskyblue;
font-size: 12px;
border-bottom: 2px dotted deepskyblue;
}
.btn.btn-xs {
border-radius: 0px;
font-size: 15PX;
background-color: whitesmoke;
}<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!doctype html>
<html lang = "en">
<head>
<!-- Required meta tags -->
<meta charset = "utf-8">
<meta name = "viewport" content = "width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel = "stylesheet" href = "https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity = "sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin = "anonymous">
<!--font awesome-->
<script defer src = "https://use.fontawesome.com/releases/v5.0.10/js/all.js" integrity = "sha384-slN8GvtUJGnv6ca26v8EzVaR9DC58QEwsIk9q1QXdCU8Yu8ck/tL/5szYlBbqmS+" crossorigin = "anonymous"></script>
<title>Hello, world!</title>
<link rel = "stylesheet" href = "./main.css">
<link rel = "stylesheet" href = "./test.css">
</head>
<body>
<div class = "container">
<button type = "button" class = "btn btn-xs " id = "btn2" onclick = "show(this)">Medium Value</button>
<span class = "fa-stack fa-lg" id = "loadingImage" style = "visibility: hidden">
<i class = "fas fa-check-circle"></i>
</span>
<div class = "row">
<div class = "cols col-sm-12"></div>
<div>
<h2 class = "status">Rate the value of Your Idea will Provide</h2>
</div>
<div class = "row table-responsive">
<table class = "table table-responsive" id = "table">
<tbody id = "tbody">
<tr class = "test">
<td>
Client Experience
</td>
<td>
<button type = "button" class = "btn btn-xs" id = "btn2" onclick = "show(this)">Low Value</button>
<span class = "fa-stack fa-lg" id = "loadingImage" style = "visibility: hidden">
<i class = "fas fa-check-circle"></i>
</span>
</td>
<td>
<button type = "button" class = "btn btn-xs " id = "btn2" onclick = "show(this)">Medium Value</button>
<span class = "fa-stack fa-lg" id = "loadingImage" style = "visibility: hidden">
<i class = "fas fa-check-circle"></i>
</span>
</td>
<td>
<button type = "button" class = "btn btn-xs" id = "btn2">High Value</button>
<span class = "fa-stack fa-lg">
<i id = "loadingImage" class = "fas fa-check-circle"></i>
</span>
</td>
</tr>
<tr class = "test">
<td>
Collaboration
</td>
<td>
<button type = "button" class = "btn btn-xs" id = "btn2">Low Value</button>
<span class = "fa-stack fa-lg">
<i id = "loadingImage" class = "fas fa-check-circle"></i>
</span>
</td>
<td>
<button type = "button" class = "btn btn-xs" id = "btn2">Medium Value</button>
<span class = "fa-stack fa-lg">
<i id = "loadingImage" class = "fas fa-check-circle"></i>
</span>
</td>
<td>
<button type = "button" class = "btn btn-xs" id = "btn2">High Value</button>
<span class = "fa-stack fa-lg">
<i id = "loadingImage" class = "fas fa-check-circle"></i>
</span>
</td>
</tr>
<tr class = "test">
<td>
Money
</td>
<td>
<button type = "button" class = "btn btn-xs" id = "btn2" onclick = "showIcon();">Low Value</button>
<span class = "fa-stack fa-lg">
<i id = "loadingImage" class = "fas fa-check-circle"></i>
</span>
</td>
<td>
<button type = "button" class = "btn btn-xs" id = "btn2">Medium Value</button>
<span class = "fa-stack fa-lg">
<i id = "loadingImage" class = "fas fa-check-circle"></i>
</span>
</td>
<td>
<button type = "button" class = "btn btn-xs" id = "btn2">High Value</button>
</td>
</tr>
<tr class = "test">
<td>
Time
</td>
<td>
<button type = "button" class = "btn btn-xs" id = "btn2">Low Value</button>
</td>
<td>
<button type = "button" class = "btn btn-xs" id = "btn2">Medium Value</button>
</td>
<td>
<button type = "button" class = "btn btn-xs" id = "btn2">High Value</button>
</td>
</tr>
<tr class = "test">
<td>
Quality
</td>
<td>
<button type = "button" class = "btn btn-xs" id = "btn2">Low Value</button>
</td>
<td>
<button type = "button" class = "btn btn-xs" id = "btn2">Medium Value</button>
</td>
<td>
<button type = "button" class = "btn btn-xs" id = "btn2">High Value</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<script src = "./test.js"></script>
</div>
</body>
</html>если я нажимаю кнопку, галочка появляется на всех кнопках, но я хочу, чтобы она была нажата, когда конкретная кнопка нажимается так же, как переключатель
@KeerthiReddyYeruva Я обновил скрипку, пожалуйста, проверьте
Большое вам спасибо .... Но он не работает как переключатель, не могли бы вы помочь мне в этом ... Заранее спасибо
Что вы имеете в виду под переключателем? вы можете показать пример или изображение того же самого?
См. У меня есть три значения для критериев, чтобы я мог отметить один из критериев, например, только низкий, средний или высокий, а не все три, которые я могу проверить, как jsfiddle.net/44Zfv/724
@KeerthiReddyYeruva, можно ли использовать jquery?
@KeerthiReddyYeruva, пожалуйста, проверьте мою обновленную скрипку, она работает как переключатель. проверить результат первой строки. Также здесь вам нужно добавить класс к элементу tr
Спасибо @Nirali, сейчас обновляю для всей таблицы
Привет, @Nirali, не могли бы вы мне помочь? Я хочу добавить анимацию для галочки. Я пробовал, но она не работает
Сначала вы пошли не так. слишком много повторяющихся идентификаторов. Вы должны установить уникальный идентификатор в одном дереве DOM, а затем передать параметр функции, как показано ниже. Вы пишете везде "loadingImage", вместо этого вы должны набирать "loadingImage1", "loadingImage2", "loadingImage3" и т. д.
<tr>
<td> Client Experience </td>
<td><button type = "button" class = "btn btn-xs" id = "btn2" onclick = "show('loadingImage2')">Low Value</button>
<span class = "fa-stack fa-lg" id = "loadingImage2" style = "visibility: hidden"> <i class = "fas fa-check-circle"></i> </span></td>
<td><button type = "button" class = "btn btn-xs " id = "btn2" onclick = "show('loadingImage3')">Medium Value</button>
<span class = "fa-stack fa-lg" id = "loadingImage3" style = "visibility: hidden"> <i class = "fas fa-check-circle"></i> </span></td>
<td><button type = "button" class = "btn btn-xs" id = "btn2" onclick = "show('loadingImage4')">High Value</button>
<span class = "fa-stack fa-lg" id = "loadingImage4"> <i class = "fas fa-check-circle"></i> </span></td>
</tr>
Функция должна иметь следующий вид:
function show(target) {
document.getElementById(target).style.visibility = 'visible';
}
Привет, я удалил все идентификаторы
Привет, я обновляю всю свою таблицу, как это сделал @Nirali
function findAncestor(el, cls) {
while ((el = el.parentElement) && !el.classList.contains(cls));
return el;
}
function show(target) {
var row = findAncestor(target, 'test');
var tick = row.getElementsByClassName("fa-lg");
Array.prototype.forEach.call(tick, function(el) {
el.style.visibility = 'hidden'
});
target.nextElementSibling.style.visibility = 'visible'
}.fa-check-circle {
right: 30px;
position: absolute;
}
tr,
td {
color: deepskyblue;
font-size: 12px;
border-bottom: 2px dotted deepskyblue;
}
.btn.btn-xs {
border-radius: 0px;
font-size: 15PX;
background-color: whitesmoke;
}<!doctype html>
<html lang = "en">
<head>
<!-- Required meta tags -->
<meta charset = "utf-8">
<meta name = "viewport" content = "width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel = "stylesheet" href = "https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity = "sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin = "anonymous">
<!--font awesome-->
<script defer src = "https://use.fontawesome.com/releases/v5.0.10/js/all.js" integrity = "sha384-slN8GvtUJGnv6ca26v8EzVaR9DC58QEwsIk9q1QXdCU8Yu8ck/tL/5szYlBbqmS+" crossorigin = "anonymous"></script>
<title>Hello, world!</title>
<link rel = "stylesheet" href = "./main.css">
<link rel = "stylesheet" href = "./test.css">
</head>
<body>
<!--scripts-->
<!-- jQuery library -->
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- Latest compiled JavaScript -->
<script src = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src = "./test.js"></script>
<div class = "row justify-content-center">
<div>
<h2 class = "status">Rate the value of Your Idea will Provide</h2>
</div>
<div class = "row">
<table class = "table table-responsive" id = "table">
<tbody id = "tbody">
<tr class = "test">
<td>
Client Experience
</td>
<td>
<button type = "button" class = "btn btn-xs" onclick = "show(this)">Low Value</button>
<span class = "fa-stack fa-lg" id = "loadingImage" style = "visibility: hidden">
<i class = "fas fa-check-circle"></i>
</span>
</td>
<td>
<button type = "button" class = "btn btn-xs " onclick = "show(this)">Medium Value</button>
<span class = "fa-stack fa-lg" id = "loadingImage" style = "visibility: hidden">
<i class = "fas fa-check-circle"></i>
</span>
</td>
<td>
<button type = "button" class = "btn btn-xs " onclick = "show(this)">High Value</button>
<span class = "fa-stack fa-lg" id = "loadingImage" style = "visibility: hidden">
<i class = "fas fa-check-circle"></i>
</span>
</td>
</tr>
<tr class = "test">
<td>
Collaboration
</td>
<td>
<button type = "button" class = "btn btn-xs" onclick = "show(this)">Low Value</button>
<span class = "fa-stack fa-lg" id = "loadingImage" style = "visibility: hidden">
<i class = "fas fa-check-circle"></i>
</span>
</td>
<td>
<button type = "button" class = "btn btn-xs " onclick = "show(this)">Medium Value</button>
<span class = "fa-stack fa-lg" id = "loadingImage" style = "visibility: hidden">
<i class = "fas fa-check-circle"></i>
</span>
</td>
<td>
<button type = "button" class = "btn btn-xs " onclick = "show(this)">High Value</button>
<span class = "fa-stack fa-lg" id = "loadingImage" style = "visibility: hidden">
<i class = "fas fa-check-circle"></i>
</span>
</td>
</tr>
<tr class = "test">
<td>
Money
</td>
<td>
<button type = "button" class = "btn btn-xs" onclick = "show(this)">Low Value</button>
<span class = "fa-stack fa-lg" id = "loadingImage" style = "visibility: hidden">
<i class = "fas fa-check-circle"></i>
</span>
</td>
<td>
<button type = "button" class = "btn btn-xs " onclick = "show(this)">Medium Value</button>
<span class = "fa-stack fa-lg" id = "loadingImage" style = "visibility: hidden">
<i class = "fas fa-check-circle"></i>
</span>
</td>
<td>
<button type = "button" class = "btn btn-xs " onclick = "show(this)">High Value</button>
<span class = "fa-stack fa-lg" id = "loadingImage" style = "visibility: hidden">
<i class = "fas fa-check-circle"></i>
</span>
</td>
</tr>
<tr class = "test">
<td>
Time
</td>
<td>
<button type = "button" class = "btn btn-xs" onclick = "show(this)">Low Value</button>
<span class = "fa-stack fa-lg" id = "loadingImage" style = "visibility: hidden">
<i class = "fas fa-check-circle"></i>
</span>
</td>
<td>
<button type = "button" class = "btn btn-xs " onclick = "show(this)">Medium Value</button>
<span class = "fa-stack fa-lg" id = "loadingImage" style = "visibility: hidden">
<i class = "fas fa-check-circle"></i>
</span>
</td>
<td>
<button type = "button" class = "btn btn-xs " onclick = "show(this)">High Value</button>
<span class = "fa-stack fa-lg" id = "loadingImage" style = "visibility: hidden">
<i class = "fas fa-check-circle"></i>
</span>
</td>
</tr>
<tr class = "test">
<td>
Quality
</td>
<td>
<button type = "button" class = "btn btn-xs" onclick = "show(this)">Low Value</button>
<span class = "fa-stack fa-lg" id = "loadingImage" style = "visibility: hidden">
<i class = "fas fa-check-circle"></i>
</span>
</td>
<td>
<button type = "button" class = "btn btn-xs " onclick = "show(this)">Medium Value</button>
<span class = "fa-stack fa-lg" id = "loadingImage" style = "visibility: hidden">
<i class = "fas fa-check-circle"></i>
</span>
</td>
<td>
<button type = "button" class = "btn btn-xs " onclick = "show(this)">High Value</button>
<span class = "fa-stack fa-lg" id = "loadingImage" style = "visibility: hidden">
<i class = "fas fa-check-circle"></i>
</span>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</body>
</html>