如何传递id属性而不是值
How to pass the id attribute instead of the value
我对HTML5数据列表很陌生,我注意到value部分与标记中的文本一起显示。但我不想显示"id"属性中的值,所以我将其作为另一种存储方法放入"id"标记中。因此:
<td>
<input list="to" id="to-selected" style="width: 145px;">
<datalist id="to">
<option value="4000 Islands, Laos" id="4483"></option>
</datalist>
</td>
如果这是可能的,我将如何检索id属性的值?(如果我得到值,我知道如何发布)
一个可能的选项是使用输入事件并手动设置值
$('#to-selected').on('input', function() {
$(this).val($(this).next().find('option[value="' + this.value + '"]').data('id'))
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input list="to" id="to-selected" style="width: 145px;" />
<datalist id="to">
<option value="4000 Islands, Laos" data-id="4483"></option>
</datalist>
如果你不想显示它,你可以将它隐藏起来,并像往常一样检索值
<input type=hidden id="something" value="4483"/>
或
<input type=text id="something" value="4483" hidden/>
要使用查询获取任何属性,请使用.attr('attributeName')
:
$('datalist').attr('id');
如果使用data-*
(如<input data-id="5"/>
),则可以使用
$('input').data('id');
请记住,如果使用js更改data-*
值,则不会将任何更改反映到DOM元素,只会反映到内存中的数据集。
您只需使用attr
事件
$('#to').on('input', function() {
$(this).val($(this).next().find('option[value="' + this.value + '"]').attr('id'))
})
相关文章:
- 将带点符号的属性(有时)传递给函数
- 如何正确引用传递到淘汰中的当前元素的属性.JS
- 访问HTML中的data-*属性并将其作为道具传递
- 在javascript函数调用中传递的HTML属性不完整
- 无法将react组件作为属性传递给另一个组件
- 传递数量不确定的可能嵌套的对象属性
- 如何传递id属性而不是值
- 传递属性,而不是值作为参数
- 使用 jQuery 传递的 Rails 嵌套属性
- 无法在
标记 SRC 属性中传递参数
- 传递引用 jQuery 后无法访问元素属性
- 通过 jquery .on() 函数将单击元素的属性值传递给外部函数
- 如何在锚点的rel属性中传递java脚本变量的值
- 在指令属性中传递数组
- 将数据属性值传递到JavaScript变量中
- 我可以在 Vue.Js 中的计算属性中传递参数吗?
- 将属性指令传递给元素指令
- 在onclick属性中传递一个JavaScript函数作为参数
- 属性大于传递变量(.filter())的jQuery元素
- 将输入属性数据传递给其他输入函数参数 - 角度