当前位置: 首页 > 面试题库 >

使用jQuery添加其他数据以选择选项

况浩邈
2023-03-14
问题内容

我希望这个问题很简单。

我有一个<select>像这样的普通盒子

<select id="select">
    <option value="1">this</option>
    <option value="2">that</option>
    <option value="3">other</option>
</select>

我可以获取选定的值(通过使用$("#select").val())和选定项的显示值(通过使用)$("#select :selected").text()

但是,如何在<option>标签中像附加值一样存储呢?我希望能够做类似的事情<option value="3.1" value2="3.2">other</option>并获取value2属性的值(在示例中为3.2)。


问题答案:

HTML标记

<select id="select">
  <option value="1" data-foo="dogs">this</option>
  <option value="2" data-foo="cats">that</option>
  <option value="3" data-foo="gerbils">other</option>
</select>

// JavaScript using jQuery
$(function(){
    $('select').change(function(){
       var selected = $(this).find('option:selected');
       var extra = selected.data('foo'); 
       ...
    });
});

// Plain old JavaScript
var sel = document.getElementById('select');
var selected = sel.options[sel.selectedIndex];
var extra = selected.getAttribute('data-foo');

通过使用HTML5中的数据属性,您可以以语法上有效的方式向元素添加额外的数据,该方式也可以从jQuery轻松访问。



 类似资料:
  • 我希望,如果我选择“mammals”,动物选择选项只显示值为1的选项data-animal_class。 我知道如何获得哺乳动物值,但我不知道如何使用过滤器 这是我的代码:

  • 问题内容: 我希望此javascript在id =“ mainSelect”的选择中创建12到100个选项,因为我不想手动创建所有选项标签。你能给我一些指导吗?谢谢 问题答案: 您可以通过一个简单的循环来实现: JS Perf比较了我和imeVidas的答案,是因为我认为他的表情比我的看起来更容易理解/直观,而且我想知道这将如何转化为实现。根据Chromium14/Ubuntu11.04的说法,其

  • 问题内容: 我想使用css在html中的选择选项之间添加某种空间(填充,边距或其他)。我已经尝试使用类似的东西: 但是没有用。我已经读过,这是可以做到的,但在IE中不起作用。无论如何,即使它无法在IE中运行,我也希望它可以在其他浏览器中运行。 PS:当前正在使用Chrome 问题答案: 选择选项的样式非常有限,因为要在操作系统中的所有应用程序之间保持一致性和一致性,因此浏览器应限制某些基本元素的样

  • 希望能澄清一下我什么时候应该使用和。这可能不是节奏问题,但也许我错过了一些关于Golang的知识。 对于我认为基本思想是等待通道的下一个输出。不完全确定什么是可以。 例如,在cadence示例中,< code>local_activity链接并粘贴在下面: 我们不使用任何 但是,在这里的例子中,它也使用信号通道:根据外部输入改变优步节奏睡眠时间 我还会将代码粘贴到这里 你可以看到有,我不完全确定它

  • 我有一个JTable,在一列中,我为每行都有一个JComboBox。我在按下按钮时动态添加行。在组合框中所做的选择将确定对该特定行执行的计算。为了参数起见,假设组合框的选项是:选项1,选项2,选项3和选项4。 我遇到的问题如下: 假设我添加了2行,并从第1行的组合框中选择任何选项,当我去第2行的组合框中进行选择时,勾选与第1行相同的选择。似乎有某种记忆。如何禁用此功能,以便默认选择始终为-1(即非