Mozilla Firefox没有获得价值innerText

时间:2012-05-03 09:51:03

标签: javascript asp.net firefox cross-browser

这是我的JavaScript代码:

function selectRow(objTR) {
    for (i = 0; i < ddlModalityList.options.length; i++) {
        if (ddlModalityList.options[i].text == objTR.cells[1].innerText.trim()) break;
    }

    ddlModalityList.options[i].selected = true;
    txtSSAETitle.value = objTR.cells[2].innerText.trim();
    txtSSName.value = objTR.cells[3].innerText.trim();
}

这是转发器代码。在行上单击我传递tr的id并在相应的下拉列表和文本框中显示相应的td值。此代码在IE中运行良好,但在Mozilla Firefox中失败。

<tr onclick="selectRow(this);">   
    <td class="csstablelisttd" style="display: none;" >
        <%#Eval("Acq_Modality_ID")%>
    </td>                     
    <td class="csstablelisttd" >                            
        <asp:Label ID="lblModality" runat="server" Text='<%#Eval("Modality")%>'></asp:Label>
    </td>

    <td class="csstablelisttd">
        <asp:Label ID="lblSchdledStAETitle" runat="server" Text='<%#Eval("Scheduled_Station_AE_Title")%>'></asp:Label>
    </td>
    <td class="csstablelisttd">
        <asp:Label ID="lblSchdleStationAEName" runat="server" Text='<%#Eval("SCHEDULED_STATION_NAME")%>'></asp:Label>
    </td>
</tr>

5 个答案:

答案 0 :(得分:7)

Firefox不支持innerText。您可以改用textContent。但是,较旧的IE不支持textContent,因此您需要使用一个并回退到另一个。

function getInnerText(el) {
    return el.textContent || el.innerText;
}

请注意,它们是not identical,但出于您的目的,它会没问题。

答案 1 :(得分:2)

使用 innerHTML 代替innerText。 InnerText在FF中不起作用。 innerHTML将同时适用于它们。

http://forums.asp.net/p/1228392/2210082.aspx

答案 2 :(得分:1)

Firefox不支持innerText .. you should use jquery,因此您无需关心浏览器实现的差异
所以使用jquery你的代码将是

function selectRow(objTR) {
    for (i = 0; i < ddlModalityList.options.length; i++) {
        if (ddlModalityList.options[i].text == $(objTR).children('td').eq(1).html().trim()) break;
    }

    ddlModalityList.options[i].selected = true;
    txtSSAETitle.value = $(objTR).children('td label').eq(2).html().trim();
    txtSSName.value = $(objTR).children('td label').eq(3).html().trim();
}

我离开ddlModalityList因为我不知道它是什么。

答案 3 :(得分:0)

function selectRow(objTR) {
    for (i = 0; i < ddlModalityList.options.length; i++) {
        if (ddlModalityList.options[i].text == $(objTR).children('td').eq(1).html().trim()) break;
    }

    ddlModalityList.options[i].selected = true;
    txtSSAETitle.value = $(objTR).children('td label').eq(2).html().trim();
    txtSSName.value = $(objTR).children('td label').eq(3).html().trim();
}

答案 4 :(得分:0)

的document.getElementById(&#39;的inputText&#39)。innerHTML.replace(/&LT; + GT; / GIM,&#39;&#39;));