Я пытаюсь получить весь элемент выбора по значению параметра, используя 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));
Это недопустимый селектор css
Я не думаю, что вы можете выбрать родителя, используя его дочерний элемент.
Использовать имя «_value» вместо идентификатора? Или это имя используется несколькими выборками? Вы также знаете идентификатор формы. Таким образом, вы могли бы использовать селектор, ищущий выбор, идентификатор которого начинается с идентификатора формы и идентификатора вкладки.
ты пробовал var testSelectorText = "select[name='_value']; ?
@Shilly- я не могу использовать атрибут имени, так как он распространен в других селекторах.
Вы можете выбрать форму по идентификатору, например, var form = document.getElementById("form"), а затем просто изменить вывод form.value. Или, поскольку вы используете angularjs, вы должны получить значение из ng-модели ( item['_value']).



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


если вы хотите найти выбор по значению 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
почему тег jquery?