关于的疑惑

dtdxkang 2010-07-21 11:18:46
在form中有两个<input type=image/>标签,没有id和属性。在js中怎样才能取到这两个标签,getElementsByTagName方法除外。
另外<input type=image/>这个标签不是归属form吗?form.elements中居然没有?
...全文
542 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainsilence 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 dtdxkang 的回复:]

引用 12 楼 lemon520 的回复:
在外面加一个span,通过childNodes的方式访问,其实就是脱了裤子放屁的做法!!!!
除非你本身就是需要一个<input type="image">的数组,那可以用getElementsByTagName,否则还是提供id的好,干嘛非要钻牛角尖呢!

页面已经写死了,不能改动,不支持getElementsByTagName,因为用的是I……
[/Quote]

IE6开始就肯定支持了。但是getElementsByName就不一定
ks37402140 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 net_lover 的回复:]
引用 10 楼 ks37402140 的回复:

HTML code

<span id="a">
<input type="button"/>
</span>

alert(document.getElementById("a").childNodes.length);



这样的话为什么会是2呢


空格也是字符,也是childNode
[/Quote]

原来是这样呀,学习了
licip 2010-07-22
  • 打赏
  • 举报
回复
其实楼主的意思不是不能取到这个对象.而是用form.elements为什么没有这个元素.form表单的元素好像是没有image这个的.
孟子E章 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ks37402140 的回复:]

HTML code

<span id="a">
<input type="button"/>
</span>

alert(document.getElementById("a").childNodes.length);



这样的话为什么会是2呢
[/Quote]

空格也是字符,也是childNode
happy664618843 2010-07-22
  • 打赏
  • 举报
回复
用jquery input[type='image']
dtdxkang 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 lemon520 的回复:]
在外面加一个span,通过childNodes的方式访问,其实就是脱了裤子放屁的做法!!!!
除非你本身就是需要一个<input type="image">的数组,那可以用getElementsByTagName,否则还是提供id的好,干嘛非要钻牛角尖呢!
[/Quote]
页面已经写死了,不能改动,不支持getElementsByTagName,因为用的是IE
dtdxkang 2010-07-22
  • 打赏
  • 举报
回复
现在的问题是form中有一个<imput type=image>标签,没有写id和name,页面已经写死了不能改动,现在要在js中取到这个标签,不支持getElementByTagName。
myhope88 2010-07-22
  • 打赏
  • 举报
回复
可以用jquery,或者遍历form中的子节点,也可以给这个input再加个父节点,通过父节点来引用
lemon520 2010-07-22
  • 打赏
  • 举报
回复
在外面加一个span,通过childNodes的方式访问,其实就是脱了裤子放屁的做法!!!!
除非你本身就是需要一个<input type="image">的数组,那可以用getElementsByTagName,否则还是提供id的好,干嘛非要钻牛角尖呢!
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ks37402140 的回复:]
<span id="a">
<input type="button"/>
</span>
alert(document.getElementById("a").childNodes.length);

这样的话为什么会是2呢
[/Quote]
你写成一行就对了:
<span id="aa"><input type="image" /></span>
softwarexiang120 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ibm_hoojo 的回复:]
ls的都可以,用jquery更简单;
$("input[type='image']")
[/Quote]

正在学习jQuery中,的确很方便。
kaifadi 2010-07-22
  • 打赏
  • 举报
回复
IE6应该也支持getElementsByTagName这个吧??
csiamgo1 2010-07-22
  • 打赏
  • 举报
回复
$(":image") 
qysnowqy 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ibm_hoojo 的回复:]

ls的都可以,用jquery更简单;
$("input[type='image']")
[/Quote]
正解,jQuery的定位很强大的=。=
cuixiping 2010-07-22
  • 打赏
  • 举报
回复
<input type='button' style="background-image:url(a.gif)">代替吧,样式里还要多设几个参数,宽、高、边框、背景等。。
cuixiping 2010-07-22
  • 打赏
  • 举报
回复
我一直不知道,原来这个<input type='image'>不在elements集合里面啊,学到了。
hoojo 2010-07-21
  • 打赏
  • 举报
回复
ls的都可以,用jquery更简单;
$("input[type='image']")
zoujp_xyz 2010-07-21
  • 打赏
  • 举报
回复
[Quote=引用楼主 dtdxkang 的回复:]
在form中有两个<input type=image/>标签,没有id和属性。在js中怎样才能取到这两个标签,getElementsByTagName方法除外。
另外<input type=image/>这个标签不是归属form吗?form.elements中居然没有?
[/Quote]

1楼的方法比较好。
2楼的方法需要遍历子节点,效率不是很好。
马老虎 2010-07-21
  • 打赏
  • 举报
回复
form.elements
确实没有!
马老虎 2010-07-21
  • 打赏
  • 举报
回复


window.onload = function () {

var ss = document.getElementById("form1").childNodes;
for (var i = 0; i < ss.length; i++) {
if (ss[i].tagName == "INPUT" && ss[i].type == "image") {

alert("OK!找到了!");

}
}


}




<form id="form1">
<input type="image" />
</form>

加载更多回复(6)

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧