我有一个9x9的数独网格,每个框都有一个分配给它的输入元素。
当我在框中设置值并尝试检查输入元素时,我注意到innerHTML
属性为空(""
)。
这就是我被困住的地方,为什么输入元素没有选择我输入的值?
这是我的JS:
window.onload = function(){
var grid = [];
setInputBox();
document.getElementById('btn').onclick = function(){
solve(grid);
}
};
function setInputBox(){
var inputElements = document.getElementsByTagName('td');
for(var prop in inputElements){
if(inputElements[prop].innerHTML = " "){
inputElements[prop].innerHTML += '<input type="number" min="1" max="9"/>';
}
}
}
var solve = function(grid){
grid = document.getElementsByTagName('input');
console.log(grid);
// for(var i = 0; i < 9; i++){
// for(var j = 0; i < 9; j++){
//
// if(checkValidity(grid,i,j)){
// console.log('valid');
// }
// else{
// console.log('invalid');
// }
// }
// }
}
答案 0 :(得分:0)
取决于您输入的内容&#34;是的,我假设他们是<input type="text">
?
如果是,那么您需要使用.value
代替.innerHTML
.innerHTML
用于获取标记内的所有HTML。
<强> IE 强>
<form>
<input type="number" class="whatever">
</form>
这并没有任何&#34;内部html&#34;在输入标记内,因为它是自己的元素。您需要该元素的VALUE,而不是标记的内容。
<强>然而强>
<div id="whatever">
<a href="#">link text</a>
</div>
你可以在这里获得.innerHTML
标签的<a>
,因为开始标记和结束标记之间有内容...意味着内部有HTML(又名innerHTML)