Эта ошибка может быть вызвана неконтролируемыми требованиями к Java-версии.
В моем случае я смог разрешить эту ошибку, создав высокопрофильный проект с открытым исходным кодом, переключившись с Java 9 на Java 8 используя SDKMAN! .
sdk list java
sdk install java 8u152-zulu
sdk use java 8u152-zulu
Затем выполните чистую установку, как описано ниже.
При использовании Maven в качестве инструмента построения иногда полезно - и, как правило, приятно, сделать clean сборку установки с отключенным тестированием.
mvn clean install -DskipTests
Теперь, когда все построенный и установленный, вы можете продолжить и запустить тесты.
mvn test
Вот как вы можете сделать это с Javascript без jQuery:
var checkboxData = [];
var trs = document.querySelectorAll("#yourtable tr");
for (var tr of trs) {
var rowCheckboxes = tr.querySelectorAll("input[type=checkbox]");
checkboxData.push([]);
for (checkbox of rowCheckboxes) {
checkboxData[checkboxData.length - 1].push(checkbox.checked ? "checked" : "unchecked");
}
};
С jQuery вы делаете нечто подобное, но с $("#yourtable tr").each
и .find()
.
Тем временем я сделал что-то, что выглядит как правдоподобное решение, может быть, есть лучшие решения, есть то, что я сделал, пожалуйста, поправьте меня с лучшей идеей, спасибо:
function whichCbox() {
var res='';
$('#Table2 tr').not(':first').each(function(){
var hdn = $(this).find('input[id^="Checkbox"]');
for(var x=0;x<=5;x++){ //there is 6 checkboxes
if(hdn[x].checked==true) {
res+='1';
} else{
res+='0';
}
}
console.log('State of checkboxes in row is:'+res);
res='';
});
return false;
}
Если вы хотите получить 0 и 1, вы можете легко использовать метод jQuery map (), чтобы получить состояние флажков в каждой строке.
var table = $("table tbody") // reference the table
table.on("change", "input:checkbox", function () { // listen for checkbox being checked
var result = table.find("tr") // find the table rows
.map( function () { // loop over to create an array of the rows
return $(this).find("input:checkbox") // find the checkboxes in the row
.map(function () { // loop over and create array of the checkbox state
return this.checked ? "1" : "0" // if checked it is 1, else 0
}).get().join("") // change the array into a string of 0 and 1's
}).get().join("<br/>") // combine the array lines on the page
$("#out").html(result) // display the result
}).find('input:checkbox:eq(0)').change(); // trigger change on first checkox so code runs
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tbody>
<tr>
<td><input type="checkbox" checked/></td>
<td><input type="checkbox" /></td>
<td><input type="checkbox" /></td>
<td><input type="checkbox" /></td>
</tr>
<tr>
<td><input type="checkbox" /></td>
<td><input type="checkbox" checked/></td>
<td><input type="checkbox" /></td>
<td><input type="checkbox" /></td>
</tr>
<tr>
<td><input type="checkbox" /></td>
<td><input type="checkbox" checked/></td>
<td><input type="checkbox" checked/></td>
<td><input type="checkbox" /></td>
</tr>
<tr>
<td><input type="checkbox" /></td>
<td><input type="checkbox" /></td>
<td><input type="checkbox" /></td>
<td><input type="checkbox" checked/></td>
</tr>
</tbody>
</table>
<div id="out"></div>
Так как кажется, что вы используете jQuery, вы можете сделать следующее:
var countBoxes = function(){
const result = [];
var $rows = $(document).find("tr"); //demo purpose, normally you would pass this as a param
$rows.each(function(i, elem){
result.push({row: i+1, amount: $(elem).find('input[type="checkbox"]:checked').length});
});
console.log(result) //=> {row: 1, amount: 1}
// {row: 2, amount: 1}
// {row: 3, amount: 2}
// {row: 4, amount: 1}
}
Он просто перебирает все строки () и проверяет входные данные флажка типа, которые отмечены (: флажок) .