0

我有一个由一系列选择框组成的“questionairre”。

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

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

感谢您的任何建议。

4

2 回答 2

2

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

您不能使用这些元素的“普通”ID 属性(即任何HTML 元素都具有的属性)option吗?
如果有必要,您还可以在 ID 前面加上前缀,并获取 ID 的子字符串,例如

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

或者根据您select的结构,您还可以使用value数据库 ID 的属性并将其他“值”作为文本放入选项中(如果它是人类可读的):

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

然后,您可以通过 获取 DB ID,.val()并通过 获取文本值.text()


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

于 2010-05-18T20:38:09.200 回答
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);
于 2010-05-18T20:40:45.743 回答