我有一个表单,看起来是这样的:
<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>
在new_post_form_submit
函数中,我想选择所有名为post_photo_edit
的元素作为一个集合。正如您所看到的,它的名称实际上是post_photo_edit[]
,因为我希望在我的PHP代码中将它作为一个数组。
我使用的是MooTools,但jQuery在这方面可能会有完全相同的解决方案。
我试着给你打电话
$$("input[name='post_photo_edit[]']")
但它给了我一个例外。并这样称呼它:
$$("input[name='post_photo_edit']")
返回空集合。
我知道我可以把它叫做
document.getElementsByName("post_photo_edit[]")
它将完美地工作,但我想知道这个表达式在MooTools中应该是什么样子,才能像上面这样工作。
有什么想法吗?
发布于 2011-04-06 10:43:22
函数:$$
选择和扩展DOM元素。返回一个Elements实例。返回的Element实例是一个类似数组的对象,支持每个Array方法和每个Element方法。
语法:
var myElements = $$(argument);
参数:
元素选择器-(字符串) CSS元素-( selector
)任意数量的元素作为参数
返回:
Elements ( elements )-使用document:id.扩展的、所有匹配的
所以你应该使用:$$(document.getElementsByName("post_photo_edit[]"));
CSS3支持字符转义,因此可以使用反斜杠对字符进行转义:
但是您也可以像这样转义数组操作符:$$("input[name=post_photo_edit\[\]]")
发布于 2011-04-06 10:48:00
不确定MooTools,但要选择具有以某物开头的属性的每个元素,请执行以下操作:
$('input[name^="post_photo_edit"]')
你可以在这里查看:jQuery starts With Selector
发布于 2011-04-06 10:51:08
您应该使用attribute starts with selector。在MooTools上也是如此
https://stackoverflow.com/questions/5564895
复制