我有一个Jquery功能,可以在Chrome中运行,但不适用于Firefox,有没有人有任何想法,出了什么问题?
此功能用于使用默认值填充文本框。代码逻辑是正确的,因为它在chrome中正常工作。
$('#filler').change(function(){
//Logic here
var Row = document.getElementById("node-0");
var Cells = Row.getElementsByTagName("td");
var size=(Cells[2].innerText);
var chr=document.getElementById("filler").value;
var fillertxt="";
for (var i=0;i<size;i++)
{
fillertxt+=chr+chr+" ";
}
if(!/[0123456789abcdef]/ig.test(chr))
{
alert("Do use Hexadecimal characters!");
}
else
{
$('#input').val(fillertxt);
}
});
答案 0 :(得分:3)
Firefox使用符合W3C的textContent
属性,而不是innerText
,这在Firefox中不受支持。
$('#filler').change(function(){
//Logic here
var Row = $("#node-0"),
Cells = Row.find("td"),
size = parseInt(Cells.eq(2).text(), 10),
chr= $("#filler").val(),
fillertxt="";
for (var i=0; i < size ; i++) {
fillertxt+=chr+chr+" ";
}
if(!/[0123456789abcdef]/ig.test(chr)) {
alert("Do use Hexadecimal characters!");
}else{
$('#input').val(fillertxt);
}
});
此外,您似乎试图在for
循环中使用字符串作为迭代次数。您需要将其解析为数字,或者如果是字符串长度,请使用length
?
答案 1 :(得分:0)
由于您已经在使用jQuery,因此您可以一直使用它来确保跨浏览器兼容性。还要确保在文档就绪功能(.change
将确保)中调用$(function(){...})
$(function(){
$('#filler').change(function(){
var size = parseInt($("#node-0 td:nth-child(3)").text(),10),
chr = $(this).val(),
fillertxt="";
for (var i=0;i<size;i += 1) {
fillertxt+=chr+chr+" ";
}
if(!/[0123456789abcdef]/ig.test(chr)) {
alert("Do use Hexadecimal characters!");
} else {
$('#input').val(fillertxt);
}
});
});