如何使用jQuery更改输入字段中的非HTML属性的值?

时间:2012-01-24 00:55:13

标签: jquery attributes

我有一个如下输入框:

<input type="text" value="" somethingSpecial="filename.txt" id="myID" class="box">

我还有一个如下所示的选择列表:

<select name="type" class="form-select" id="type">
    <option value="keyword" selected="selected" otherValue="filename.txt">Keyword</option>
    <option value="title" otherValue="filename1.txt">Title</option>
    <option value="author" otherValue="filename2.txt">Author</option>
    <option value="subject" otherValue="filename3.txt">Subject</option>
</select>

当用户从这个选择列表中选择一个选项时,为了这个例子,让我们说“标题”,然后我需要将“otherValue”拉出这个字段,所以“filename1.txt”和交换输入框中的“somethingSpecial”值。

通常情况下,我只会使用一个函数来访问HTML属性,比如name,id,class等......但显然我使用的是没有传统属性的。

3 个答案:

答案 0 :(得分:1)

类似的东西:

$("#myid").attr("otherValue")

答案 1 :(得分:1)

如果您想要执行此类操作,可以使用.attr(),但首选方法是使用自定义数据属性(其名称以data-开头)和.data()方法进行访问/改变它们。它们是HTML5的一部分,但也可以在早期版本的HTML中访问(参见John Resig的文章:HTML 5 data- attributes)。

<input type="text" value="" data-somethingSpecial="filename.txt" id="myID" class="box">

然后像这样访问它:

jQuery('#myID').data('somethingSpecial')

并改变:

jQuery('#myID').data('somethingSpecial', 'something else')

答案 2 :(得分:0)

使用jquery.data()

查看

您可以在标记中使用HTML5语法,如:

<option id="title" value="title" data-otherValue="filename1.txt">Title</option>

使用jquery访问:

$('option#title').data('othervalue')

我确信您可以在此示例的基础上进行构建,并选择您的选项作为数组或其他内容。