我正在使用以下代码段来更新表格中的某些文本框值。
<table>
<tr>
<td>
ProjectName
</td>
<td>
Block
</td>
<td>
.WorkProgressMilestone
</td>
<td>
Completion
</td>
<td>
<span class="sep">
<img height="15px" width="20px" src="@Url.Content("~/Content/themes/base/images/Edit.png")" /></span><a
href="#" onclick="EditWorkDetails(this);" style="text-decoration: none">Edit</a>
<input id="WorkProgressEditID" name="WorkProgressEditID" type="hidden" value="@v.WorkProgressID" />
</td>
</tr>
<tr>..</tr>
</table>
function EditWorkDetails(e) {
document.getElementById("txtCompletion").value = e.parentNode.parentNode.childNodes[3].innerText;
}
在IE中它适用于我,但在其他浏览器(Chrome)中无效。值得注意的是,表'td'和'tr'没有Id属性来区分对方。所以我不能在这里使用jquery。我可以遵循的替代方案是使其适用于所有浏览器。
答案 0 :(得分:2)
试试这个:
document.getElementById("txtCompletion").value = $(this).parent().parent().children()[3].html();
或
$("txtCompletion").val($(this).parent().parent().children()[3].html());
答案 1 :(得分:1)
innerText
并非普遍支持。childNodes
中的空白文本节点。 IE没有,所以如果你的tr.childNodes[3]
元素之间有空格,<td>
将引用不同的节点。我建议修正:
element.textContent || elem.innerText
。这是not perfect,但在大多数情况下都可以正常使用。cells
属性,该属性被普遍支持回IE 4。包含两个修复的示例代码:
var td = e.parentNode.parentNode.cells[3];
var tdText = td.textContent || td.innerText;
答案 2 :(得分:0)
innerText,您可以尝试使用jquery 或
根据浏览器版本
使用.textContent和.innerText