JQuery无法在Firefox中运行

时间:2013-02-22 12:49:07

标签: jquery

我有一个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);
    }
});

2 个答案:

答案 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);
      }
    });
});