1

我有一个动态填充的表(使用更新面板),然后当用户单击所选行时,所有数据都将写入标签。在 IE 和 chrome 中运行良好,但 firefox 说未定义。有 5 列的简单表格。我使用以下内容动态绑定到表:(请原谅代码膨胀)

    $('#tblResults').delegate(".aRow", "click", function () {
            var thatID = this.id;
            if (thatID != "0") {
                var wordz = "";
                var specialID = document.getElementById("hiddenChosenContact");
                var targetContact = document.getElementById("theContactLabel");

                for (var i = 1; i <= this.cells.length - 1; i++) {
                    if (i == this.cells.length - 1)
                        wordz = wordz + this.cells[i].innerText;
                    else
                        wordz = wordz + this.cells[i].innerText + " - ";
                }

                targetContact.innerHTML = wordz;
                specialID.value = thatID;
            }
            else {

            }
     });

该行在加载时被赋予一个 id 和类名“aRow”。我尝试只使用完整的 jquery,$(this),但老实说,我不确定表操作的语法。

**编辑。抱歉,意思是未定义的值包含在 this.cells[i].innerText 中

**HTML 编辑

<table class="cvTableG" id="tblResults" cellPadding="0" cellSpacing="0" style="clear:left; width:100%; font-size:10px;">
            <thead>
              <tr class="aRow" id="1"><th width="14px;">&nbsp;</th>
                <th align="left" width="85px">Name</th>
                <th align="left" width="90px">Surname</th>
                <th align="left">Department</th>
                <th align="left">Customer</th>
              </tr>
            </thead>
            <tbody>
              <tr class="aRow" id="2">
                <td style="padding:0;"><input type="radio" name="myRadio" /></td>
                <td>Marty</td>
                <td>Elliott</td>
                <td>Development Place</td>
                <td>Rosebank</td>
              </tr>
              <tr class="aRow" id="3">
              <td style="padding:0;"><input type="radio" name="myRadio" /></td>
                <td>Sarah</td>
                <td>Lee</td>
                <td>Dev Place</td>
                <td>JHB</td>
              </tr>
               <tr class="aRow" id="4">
               <td style="padding:0;"><input type="radio" name="myRadio" /></td>
                <td>Marty</td>
                <td>Elliott</td>
                <td>Halfway House</td>
                <td>Durban</td>
              </tr></tbody></table>
4

2 回答 2

1

我曾经遇到过仅在 Firefox 中出现的 Jquery 选择器问题。如果我没记错的话,解决方案是添加与 id 具有相同值的 name 属性。因此,在您的情况下,它将是:

<table class="cvTableG" id="tblResults" name="tblResults">

试试看,让我知道它是否有效。

我找到了教程,你可能想尝试这样的事情:


例如,以下 .delegate() 代码:

$("table").delegate("td", "click", function() {
  $(this).toggleClass("chosen");
});

等效于使用 .on() 编写的以下代码:

$("table").on("click", "td", function() {
  $(this).toggleClass("chosen");
});

也许它会这样工作?

于 2012-07-31T08:42:27.757 回答
0

Firefox 没有实现非标准innerText属性。您是否想要textContent,这标准化的?

于 2012-07-31T15:31:42.903 回答