Как я могу изменить значение не-HTML атрибута в поле ввода с помощью jQuery? - PullRequest
2 голосов
/ 24 января 2012

У меня есть поле ввода, подобное следующему:

<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>

Когда пользователь выбирает опцию из этого списка выбора, скажем, «Заголовок» ради этого примера, тогда мне нужно вытащить «другое значение» из этого поля, поэтому «filename1.txt» и поменять местами для значения «SomeSpecial» в поле ввода.

Обычно я бы просто использовал функцию для доступа к атрибуту HTML, например, к имени, идентификатору, классу и т. Д., Но, очевидно, те, которые я использую, не являются ни одним из обычных атрибутов.

Ответы [ 3 ]

1 голос
/ 24 января 2012

Если вы хотите делать такие вещи, вы можете использовать .attr(), но предпочтительным способом является использование пользовательских атрибутов данных (их имена начинаются с data-) и .data() методов для доступа к ним / их изменения. Они являются частью HTML5, но доступны и в более ранних версиях HTML (см. Статью Джона Ресига: атрибуты данных HTML 5 ).

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

, а затем получить к нему доступ так:

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

и изменить так:

jQuery('#myID').data('somethingSpecial', 'something else')
1 голос
/ 24 января 2012

Что-то вроде:

$("#myid").attr("otherValue")
0 голосов
/ 24 января 2012

Изучите использование jquery.data ()

, вы можете использовать синтаксис HTML5 в вашей разметке, например:

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

доступ в jquery с:

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

Я уверен, что вы можете опираться на этот пример и выбирать параметры в виде массива или чего-то подобного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...