jQuery选择器 - >如何获取使用“id开头/结尾”选择的字段的值?

时间:2017-12-12 15:40:13

标签: jquery jquery-selectors

我试图获取select字段的值,但.val()似乎不起作用。

我通过使用开始获取选择字段并以。结束。

s_day = $("select[id ^='form-widgets'][id $='start-day']")

我打开一个表单,然后找到一个字段:

if(s_day.length > 0){
    console.log(s_day[0]);
}

console.log输出

<select class="day date-widget required date-field" name="form.widgets.entry_start-day" id="form-widgets-entry_start-day">

当我尝试:

console.log(s_day[0].val())

我明白了:

s_day[0].val is not  a function

当我尝试手动输入返回字段的ID时:

s_day = $("#form-widgets-IEventBasic-start-day");
console.log(s_day.val());

它返回月中的某天(整数)。

如何使用我使用的方法获取选择框的val?

我有理由这样做。某些表单与开始/结束字段具有“接口”,字段ID与模式选择匹配[id ^ ='form-widgets'] [id $ ='start-day'] 还有 - 月, - 等等 我想针对那些改变他们的默认值。

我现在可以做的是:

s_day = $('select[id ^="form-widgets"][id $="start-day"]');
if(s_day.length > 0){
    console.log($("#"+s_day[0].id).val());
}

这也会正确返回月中的某天。

但我不确定我是否应该这样做。

1 个答案:

答案 0 :(得分:1)

通过索引访问jQuery对象返回底层DOM元素,因此&#39; val不是函数&#39;错误。

如果您想要检索找到的第一个元素,请使用first():first,如下所示:

&#13;
&#13;
var s_day = $('select[id^="form-widgets"][id$="start-day"]:first').val();

console.log(s_day);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<select class="day date-widget required date-field" name="form.widgets.entry_start-day" id="form-widgets-entry_start-day">
  <option value="foo">Foo</option>
</select>
&#13;
&#13;
&#13;

相关问题