Javascript 如何按名称属性获取输入元素的集合

Javascript 如何按名称属性获取输入元素的集合,javascript,jquery,forms,mootools,css-selectors,Javascript,Jquery,Forms,Mootools,Css Selectors,我有一张这样的表格: <form method="post" enctype="multipart/form-data" onsubmit="return new_post_form_submit();"> <input type="hidden" name="task" value="addPost"> <input type="hidden" name="post_photo_edit[]" value="0"> <input

我有一张这样的表格:

<form method="post" enctype="multipart/form-data" onsubmit="return new_post_form_submit();">    
<input type="hidden" name="task" value="addPost">   
<input type="hidden" name="post_photo_edit[]" value="0">    
<input type="hidden" name="post_photo_edit[]" value="0">
<input type="hidden" name="post_photo_edit[]" value="0">
 ... 
</form>
但这给了我一个例外。这样说:

$$("input[name='post_photo_edit']")
返回空集合

我知道我可以称之为

document.getElementsByName("post_photo_edit[]")
它将完美地工作,但我想知道在MooTools中这个表达式应该是什么样子才能像上面这样工作


有什么想法吗?

函数:$$

选择和扩展DOM元素。返回一个Elements实例。返回的元素实例是一个类似数组的对象,支持每个数组方法和每个元素方法

语法:

var myElements=$$(参数)

参数:

  • 选择器-(字符串)CSS选择器
  • 元素-(元素)、(集合)或(数组)元素的可枚举列表
  • 元素,元素-(元素)任意数量的元素作为参数
返回:

  • (elements)-匹配的所有DOM元素的类似数组的元素集合,用document:id扩展
所以您应该使用:
$$(document.getElementsByName(“post\u photo\u edit[])

CSS3支持字符转义,因此可以使用反斜杠转义字符:


但是您也可以像这样转义数组操作符:
$$(“输入[name=post\u photo\u edit\[\]])

不确定MooTools,但要选择每个具有以某物开头的属性的元素,请执行以下操作:

$('input[name^="post_photo_edit"]')

您可以在这里查看:

您应该使用。在MooTools上也是一样

谢谢你的提示,实际上是
$$('input[name^=“post\u photo\u edit”])
。MooTools正在使用。感谢您的输入:)IE下的修复,至少8个,只有这个有效:
[name~='post\u photo\u edit']
这个
$([input[name=post\u photo\u edit\[\]])
会很完美,但它不起作用我在谷歌chrome下的JSFIDLE中尝试过,效果不错。你是对的,它正在工作,但是。。。我正在使用一些旧的MooTools版本,在JSFIDLE上的1.1下它也不工作,在1.25下它返回0,在1.3下它正常工作。非常感谢。如果您试图使用Mootools/这样做来绕过IE8的DOM遍历限制,那么这在IE8中不起作用。
$('input[name^="post_photo_edit"]')