每个返回“未定义”

时间:2010-12-28 12:59:28

标签: javascript jquery

Hy guys,

我有一张像

这样的表格
    <table id="table4">
    <tr>
        <td>Id:</td>
        <td>Nome:</td>
    </tr>
    <tr>
        <td>1515</td>
        <td>Thiago</td>
    </tr>
    <tr>
        <td>2015</td>
        <td>Guttierre</td>
    </tr>
</table>

当我的剧本做...

    $("#table4 tr td:nth-child(1)").each(function ai() {
      var d = $(this).text();
      if ((d != 0) && (d != "") && (d != 'undefined') && (d != "Id:")) {
          alert(d);
      };
    });

它返回:1515,然后是2015,然后返回错误:

  

Microsoft JScript运行时错误:“未定义”为null或不是对象。

为什么它返回“undefined”???

小伙子们!

2 个答案:

答案 0 :(得分:4)

命名函数文字是合法的JavaScript,但我相信由于范围问题,某些浏览器可能无法正确处理这些问题。来自the link that Marko Dumic provided的评论:

  

不幸的是,JScript(即Internet Explorer的ECMAScript实现)严重搞砸了命名函数表达式。

如果您不打算在其他任何地方使用ai功能,请尝试删除名称(哦,正如Orbling所说,undefined是一个变量,如果您要与该“值”进行比较,请删除报价):

$("#table4 tr td:nth-child(1)").each(function() {
  var d = $(this).text();
  if ((d != 0) && (d != "") && (d != undefined) && (d != "Id:")) {
      alert(d);
  };
});

答案 1 :(得分:1)

我用chrome检查你的脚本。 它工作正常。 请记住将此功能包装在

$(document).ready()

或将其放在身体部分。