JQuery - 字符串列表

Raf*_*per 6 javascript jquery

在JQuery中,为什么我要information Undefined使用以下代码?

JS - 右边部分是Undefined

var s = $("[name='CountAnswer']").val();
Run Code Online (Sandbox Code Playgroud)

HTML

<input style="width:150px" type="text" id="CountAnswer_1_" name="CountAnswer[1]">
<input style="width:150px" type="text" id="CountAnswer_2_" name="CountAnswer[2]">
<input style="width:150px" type="text" id="CountAnswer_3_" name="CountAnswer[3]">
Run Code Online (Sandbox Code Playgroud)

Adi*_*dil 6

你正在使用相等比较,但你必须使用通配符j j 查询属性开始, ^但上面的语句将给出第一个匹配元素的值.您可以使用每个元素迭代所有元素.

var s = $("[name^='CountAnswer']").val();
Run Code Online (Sandbox Code Playgroud)

使用each()迭代.

现场演示

$("[name^='CountAnswer']").each(function(){
   alert($(this).val());
   //or
   alert(this.value);
});
Run Code Online (Sandbox Code Playgroud)

编辑基于OP评论.获取所有匹配的值.

现场演示

strValues = $("[name^='CountAnswer']").map(function(){  
   return this.value;
}).get().join(',');
Run Code Online (Sandbox Code Playgroud)


Ben*_*enM 5

因为您没有名称为==的元素CountAnswer.您需要指定特定名称,例如:

$("[name='CountAnswer[1]']").val();
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用"Begins With"通配符(^)来匹配名称以下开头的所有元素CountAnswer:

$("[name^='CountAnswer']").val();
Run Code Online (Sandbox Code Playgroud)

当然,这只会返回匹配集中第一个元素的值,因为这是行为val().