JQuery选择器表单元素php数组

时间:2011-10-12 08:34:52

标签: jquery escaping selector character

我试图使用下面的代码来选择表单元素(我检索值以验证文本)

$('#box1 [name=item[]]').val();
$('#box2 [name=item[]]').val();

我正试图获得以下

的价值
<form..>
   <div id='box1'> <input type='text' name='item[]'/> </div>
   <div id='box1'> <input type='text' name='item[]'/> </div>
</form>

我需要使用带有方括号[]的'item []',因为php可以将这些数据作为数组检索

$data = $_REQUEST['item'];

将返回包含'item'

中所有数据的数组

问题是$('#box [name = item []]')。val()不起作用,我怎么能让它工作或者有其他方法可以做到这一点?

3 个答案:

答案 0 :(得分:2)

您需要转义jQuery选择器中的[],因为它们具有特殊含义(属性选择器):

$('#box1 [name="item\\[\\]"]').val();
$('#box2 [name="item\\[\\]"]').val();

jQuery documentation states:

  

如果你想使用任何元字符(例如!“#$%&amp;'()* +,。/:;&lt; =&gt;?@ [] ^`{|}〜)作为名称的文字部分,您必须使用两个反斜杠转义字符:\。

答案 1 :(得分:1)

如果您可以为输入提供类似“input_item”的类名而不是

$("input.input_item").each(function() {

    // do something with $(this).val()
});

答案 2 :(得分:0)

尝试 -

$('#box1 input[name="item[]"]').val()

我刚刚在'name'值周围添加了双引号,并将'input'选择器添加到选择器值。

演示 - http://jsfiddle.net/ipr101/JbW5m/