如何使用jQuery获取选定元素的选定选项名称或id

时间:2010-05-18 20:35:26

标签: jquery select options

我有一个“问题空间”,由一系列选择框组成。

我需要在选项中使用两个属性。对于每个选定的选项,我需要值(我知道如何获得并且工作正常)但我还需要存储一个附加值,该值表示数据库中特定选项的ID。

一种解决方案是将两个值放在“value”属性中并解析出来..但如果有一些其他属性我可以使用它可能更容易和更清楚..我可以添加自定义属性??像可以用jQuery访问的databaseId吗?

感谢任何建议。

2 个答案:

答案 0 :(得分:2)

我不会添加自定义属性,因为这不再是有效的HTML。

您是否可以使用这些option元素的“普通”ID属性(即任何HTML元素所具有的属性)?
如果有必要,您还可以为ID添加前缀,并获取ID的子字符串,例如

<option id="db23123" value="value">Value</option>

或者取决于select的结构,您还可以使用value属性作为数据库ID,并将另一个“值”作为文本放在选项中(如果它是人类可读的):

<option value="23123">Human Readable Value</option>

然后,您可以通过.val()获取数据库ID,通过.text()获取文本值。


另一种有效的解决方案,例如:通过JavaScript动态创建option元素是使用.data()功能。这允许您将任意键值对附加到任何DOM节点。

答案 1 :(得分:1)

您可以使用metadata-plugin

然后您可以这样使用:

标记:

<select>
  <option class="{db_id: 1}" name="X" value="y" selected="selected">
  [...]
</select>

脚本:

  var data = $('option:selected').metadata();
  alert(data.db_id);