Как получить элемент select по значению параметра

Я пытаюсь получить весь элемент выбора по значению параметра, используя jquery, но не получаю его. Идентификатор выбранного элемента является динамическим и еще не загружен. Поэтому я не могу использовать id для получения элемента select. Поэтому пытаемся использовать значение опции.

Вот пример элемента select, который я пытаюсь получить: -

<select sf-field-model = "" id = "{{form.formId}}_{{interp(form.formTabId,{'$index':$index, value: item}) || $index}}" ng-disabled = "form.readonly" sf-changed = "form" class = "form-control input-sm c" schema-validate = "form" ng-options = "item.value as item.name group by item.group for item in form.titleMap" name = "_value" ng-model = "item['_value']">
   <option value = "?" selected = "selected"></option>
   <option label = "TEST-1" value = "string:TEST1">TEST-1</option>
   <option label = "TEST-2" value = "string:TEST2">TEST-2</option>
   <option label = "TEST-3" value = "string:TEST3">TEST-3</option>
   <option label = "TEST-4" value = "string:TEST4">TEST-4</option>
   <option label = "TEST-5" value = "string:TEST5">TEST-5</option>
</select> 

Я пробовал следующее: -

var testSelectorText = "select['option[value='?']']";
angular.element(document.querySelectorAll(testSelectorText));

почему тег jquery?

Milind Anantwar 14.06.2019 09:17

Это недопустимый селектор css

charlietfl 14.06.2019 09:19

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

Gaurav Punjabi 14.06.2019 09:19

Использовать имя «_value» вместо идентификатора? Или это имя используется несколькими выборками? Вы также знаете идентификатор формы. Таким образом, вы могли бы использовать селектор, ищущий выбор, идентификатор которого начинается с идентификатора формы и идентификатора вкладки.

Shilly 14.06.2019 09:19

ты пробовал var testSelectorText = "select[name='_value']; ?

Roy Bogado 14.06.2019 09:21

@Shilly- я не могу использовать атрибут имени, так как он распространен в других селекторах.

My God 14.06.2019 09:22

Вы можете выбрать форму по идентификатору, например, var form = document.getElementById("form"), а затем просто изменить вывод form.value. Или, поскольку вы используете angularjs, вы должны получить значение из ng-модели ( item['_value']).

mocni_T 14.06.2019 09:24
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
7
118
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

если вы хотите найти выбор по значению options, попробуйте следующее:

$("select option[value='string:TEST3']").parent();

демо

var testSelectorText = $("select option[value='string:TEST3']").parent();
console.info(testSelectorText.attr("id"))
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select sf-field-model = "" id = "{{form.formId}}_{{interp(form.formTabId,{'$index':$index, value: item}) || $index}}" ng-disabled = "form.readonly" sf-changed = "form" class = "form-control input-sm c" schema-validate = "form" ng-options = "item.value as item.name group by item.group for item in form.titleMap" name = "_value" ng-model = "item['_value']">
   <option value = "?" selected = "selected"></option>
   <option label = "TEST-1" value = "string:TEST1">TEST-1</option>
   <option label = "TEST-2" value = "string:TEST2">TEST-2</option>
   <option label = "TEST-3" value = "string:TEST3">TEST-3</option>
   <option label = "TEST-4" value = "string:TEST4">TEST-4</option>
   <option label = "TEST-5" value = "string:TEST5">TEST-5</option>
</select>

Эта строка использует jquery для поиска нужного элемента select, используя optionvalue для его идентификации.

sel = $("select option[value='string:TEST2']").closest("select");

Дайте мне знать, если это не то, что вы хотели.


Демо

// Find the option with known value
// Find the closest 'select'
sel = $("select option[value='string:TEST2']").closest("select");

// Print name to demonstrate we found the item
console.info(sel.attr("name"));
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<select sf-field-model = "" id = "{{form.formId}}_{{interp(form.formTabId,{'$index':$index, value: item}) || $index}}" ng-disabled = "form.readonly" sf-changed = "form" class = "form-control input-sm c" schema-validate = "form" ng-options = "item.value as item.name group by item.group for item in form.titleMap" name = "_value" ng-model = "item['_value']">
   <option value = "?" selected = "selected"></option>
   <option label = "TEST-1" value = "string:TEST1">TEST-1</option>
   <option label = "TEST-2" value = "string:TEST2">TEST-2</option>
   <option label = "TEST-3" value = "string:TEST3">TEST-3</option>
   <option label = "TEST-4" value = "string:TEST4">TEST-4</option>
   <option label = "TEST-5" value = "string:TEST5">TEST-5</option>
</select>

Это то, что я использовал недавно, чтобы сделать именно это.

$('option[value = "string:TEST1"]').closest('select')

установите class, чтобы выбрать

<select class='myClass' sf-field-model = "" id = "{{form.formId}}_{{interp(form.formTabId,{'$index':$index, value: item}) || $index}}" ng-disabled = "form.readonly" sf-changed = "form" class = "form-control input-sm c" schema-validate = "form" ng-options = "item.value as item.name group by item.group for item in form.titleMap" name = "_value" ng-model = "item['_value']">
   <option value = "?" selected = "selected"></option>
   <option label = "TEST-1" value = "string:TEST1">TEST-1</option>
   <option label = "TEST-2" value = "string:TEST2">TEST-2</option>
   <option label = "TEST-3" value = "string:TEST3">TEST-3</option>
   <option label = "TEST-4" value = "string:TEST4">TEST-4</option>
   <option label = "TEST-5" value = "string:TEST5">TEST-5</option>
</select>
<button onclick = "callMe()">get Value</button> 

сценарий wirte, как показано ниже

function callMe()
{
    var value = $("select.myClass").val();
    console.info(value);
}

Ниравдас Я не верю, что ОП пытается получить выбранное значение, заявляет он, I'm trying to get the whole select element by option value

Carsten Løvbo Andersen 14.06.2019 09:42

Другие вопросы по теме