如果我有某个代码,我如何在JavaScript中遍历或到达按钮(即输入== INPUT)。
<td> <div>
<script></script>
<script></script>
<script></script>
<input type="button"....../>
</div></td>
我尝试过:
var cell = row.cells[0];
if (cell) {
var btn1 = cell.firstChild;
alert(btn.tagName.toUpperCase());
这导致了“DIV”和
var cell = row.cells[0];
if (cell) {
var btn = btn1.firstChild;
alert(btn.tagName.toUpperCase());
这导致了“SCRIPT”
但是做同样的事情(即firstChild),我无法成功。
感谢任何帮助。 感谢
答案 0 :(得分:0)
为您的输入提供名称和ID属性,然后您就可以执行
var btn = document.getElementById("buttons_id");
..否则你需要一个递归函数来“遍历”DOM子树以找到按钮。
另一种方法是使用Prototype或jQuery之类的框架,它可以让你简单地做:
var cell = row.cells[0];
if (cell) {
var btn = $(":button",cell); //jQuery
$(cell).getElementsBySelector("input[type="button"]); //Prototype
}
请注意,我并不是100%熟悉Prototype.js中的选择 - 上面的内容可能有用,但可能有更简洁的方法。
仅供参考,这是我之前谈论的递归方法......
function findBtn(elm){
if (elm && elm.tagName && elm.tagName.toUpperCase() == "INPUT" &&
elm.getAttribute && elm.getAttribute("TYPE").toUpperCase() == "BUTTON") {
return elm; //Found!
}
for (var i=0; i<elm.childNodes.length; i++) {
var b = findBtn(elm.childNodes[0]);
if (b) return b; //one of the recursive calls found it
//else keep looping
}
}
var btn = findBtn(row.cells[0]);