繁体   English   中英

如何通过name属性获取输入元素的集合

[英]How to get a collection of input elements by name attribute

我有一个看起来像那样的表格:

<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中应该如何像上面那样工作。

有任何想法吗?

功能:$$

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

句法:

var myElements = $$(argument);

参数:

  • selector - (字符串)CSS选择器
  • elements - (elements),(collection)或(array)可枚举的元素列表
  • element,element - (element)任意数量的元素作为参数

返回:

  • (elements) - 匹配的所有DOM元素的类似数组的Elements集合,使用document:id扩展。

所以你应该使用: $$(document.getElementsByName("post_photo_edit[]"));

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

但你也可以像这样转义数组运算符: $$("input[name=post_photo_edit\\[\\]]")

不确定MooTools,但要选择每个具有BEGINS属性的元素,你可以这样做:

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

你可以在这里查看: jQuery从Selector开始

你应该使用属性启动选择器 在MooTools上也是如此

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM