我有一张看起来像这样的表格:
<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中应该如何像上面这样工作。
任何想法?
答案 0 :(得分:5)
功能:$$
选择并扩展DOM元素。返回一个Elements实例。返回的Element实例是一个类似于数组的对象,支持每个Array方法和每个Element方法。
<强>语法:强>
var myElements = $$(argument);
<强>参数:强>
<强>返回:强>
所以你应该使用:$$(document.getElementsByName("post_photo_edit[]"));
CSS3支持字符转义,因此您可以使用反斜杠来转义字符:
但你也可以像这样转义数组运算符:$$("input[name=post_photo_edit\[\]]")
答案 1 :(得分:1)
不确定MooTools,但是为了选择具有BEGINS属性的每个元素,你可以这样做:
$('input[name^="post_photo_edit"]')
您可以在此处查看:jQuery starts With Selector
答案 2 :(得分:1)
你应该使用attribute starts with selector。在MooTools上也是如此