Получить значение имени атрибута <input> - PullRequest
113 голосов
/ 18 августа 2010

Как получить значение имени атрибута входного тега, используя jQuery.Пожалуйста, помогите.

<input name='xxxxx' value=1>

Ответы [ 10 ]

236 голосов
/ 18 августа 2010

Дайте вашему вводу идентификатор и используйте метод attr:

var name = $("#id").attr("name");
32 голосов
/ 18 августа 2010

Используйте метод jQuery attr следующим образом:

alert($('input').attr('name'));

Обратите внимание, что вы также можете использовать attr для установки значений атрибута, указав второй аргумент:

$('input').attr('name', 'new_name')
17 голосов
/ 10 июля 2014
var value_input = $("input[name*='xxxx']").val();
14 голосов
/ 10 июля 2014

Хотя нельзя отрицать, что jQuery является мощным инструментом, очень плохая идея использовать его для такой тривиальной операции, как «получить значение атрибута элемента».

Судя по текущему принятому ответу, я предполагаю, что вы смогли добавить атрибут ID к своему элементу и использовать его для его выбора.

Имея это в виду, вот два куска кода. Во-первых, код, данный вам в принятом ответе:

$("#ID").attr("name");

И, во-вторых, версия Vanilla JS :

document.getElementById('ID').getAttribute("name");

Мои результаты:

  • jQuery: 300 тыс. Операций в секунду
  • JavaScript: 11 000 000 операций в секунду

Вы можете проверить сами здесь . Версия "обычного JavaScript" * более чем в 35 раз , чем версия jQuery.

Теперь, это только для одной операции, со временем у вас будет все больше и больше вещей, происходящих в вашем коде. Возможно, для чего-то особенно продвинутого, оптимальное «чистое JavaScript» решение заняло бы одну секунду для запуска. Версия jQuery может занять от 30 секунд до целой минуты! Это огромно! Люди не собираются сидеть сложа руки для этого. Даже браузер заскучает и предложит вам убить веб-страницу за слишком долгое время!

Как я уже сказал, jQuery - мощный инструмент, но его следует не считать ответом на все .

7 голосов
/ 18 августа 2010

Вам нужно написать селектор, который сначала выберет правильный <input>.В идеале вы должны использовать идентификатор элемента $('#element_id'), если идентификатор его контейнера $('#container_id input') отсутствует или класс элемента $('input.class_name').

У вашего элемента нет ни одного из них, ни контекста, поэтому трудно сказать,Вы, как выбрать его.

Как только вы выяснили правильный селектор, вы должны использовать метод attr для доступа к атрибутам элемента.Чтобы получить имя, вы должны использовать $(selector).attr('name'), который будет возвращать (в вашем примере) 'xxxxx'.

5 голосов
/ 02 мая 2013

Лучшим способом может быть использование «this», оно принимает любое имя «id» и использует его.Пока вы добавляете имя класса под названием «mytarget».

Всякий раз, когда какое-либо из полей, для которых задана цель, изменится, появится окно с названием этого поля.Просто отрежьте и пропустите весь скрипт, чтобы он заработал!

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
<script>
$(document).ready(function() {
 $('.mytarget').change(function() {
var name1 = $(this).attr("name");
alert(name1);
 });
});
</script>

Name: <input type="text" name="myname" id="myname" class="mytarget"><br />
Age: <input type="text" name="myage" id="myage" class="mytarget"><br />
1 голос
/ 19 декабря 2018

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

 $('input[value="1"]').attr('name');

используя идентификатор, получить имя для ввода

 $('input[class="id"]').attr('name');
   $('#id').attr('name');

используя класс, получить имя для ввода

 $('input[value="classname"]').attr('name');
   $('.classname').attr('name');  //if classname have unique value
1 голос
/ 18 августа 2010
var theName;

theName = $("input selector goes here").attr("name");
0 голосов
/ 05 февраля 2019

Если вы имеете дело с единственным элементом , желательно использовать селектор id, как указано в ответе GenericTypeTea, и получить имя, например $("#id").attr("name");.

Но если вы хотите, как я сделал, когда нашел этот вопрос, список со всеми входными именами определенного класса (в моем примере список с именами всех непроверенных флажковс .selectable-checkbox классом) вы можете сделать что-то вроде:

var listOfUnchecked = $('.selectable-checkbox:unchecked').toArray().map(x=>x.name);

или

var listOfUnchecked = [];
$('.selectable-checkbox:unchecked').each(function () {
    listOfUnchecked.push($(this).attr('name'));
});
0 голосов
/ 25 августа 2016

В приведенной ниже строке изначально возникла проблема с предоставлением единственного кода, который 'currnetRowAppName'value' не занимал пробел со строкой.Таким образом, после того, как он дает один код '"+row.applicationName+"', он также занимает пробел.

Пример:

<button class='btn btn-primary btn-xs appDelete' type='button' currnetRowAppName='"+row.applicationName+"' id="+row.id+ >

var viewAppNAME = $(this).attr("currnetRowAppName");
alert(viewAppNAME)

Это работает нормально.

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