Я пытаюсь использовать найденный мной сценарий для создания зависимого раскрывающегося списка на моей веб-странице. К несчастью. Хотя код на jsFiddle работает правильно, с моей стороны он совсем не работает.
var $select1 = ('#select1'),
$select2 = ('#select2'),
$options = $select2.find('option');
$select1.on('change', function() {
$select2.html($options.filter('[value = "' + this.value + '"]'));
}).trigger('change');<!DOCTYPE HTML>
<html>
<head>
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
<div class = "col-xs-6">
<select class = "form-control" name = "select1" id = "select1">
<option value = "1">Fruit</option>
<option value = "2">Animal</option>
<option value = "3">Bird</option>
<option value = "4">Car</option>
</select>
</div>
<div class = "col-xs-6">
<select class = "form-control" name = "select2" id = "select2">
<option value = "1">Banana</option>
<option value = "1">Apple</option>
<option value = "1">Orange</option>
<option value = "2">Wolf</option>
<option value = "2">Fox</option>
<option value = "2">Bear</option>
<option value = "3">Eagle</option>
<option value = "3">Hawk</option>
<option value = "4">BWM
<option>
</select>
</div>
</body>
</html>Я новичок в HTML и JS, поэтому, пожалуйста, простите меня, если я допустил супер очевидные ошибки!
Итак, вы дали нам рабочий пример, но не дали нам ничего, что могло бы воспроизвести проблему со своей стороны. Как мы должны помочь?
Почему вы дважды вызываете jQuery?
@QuentinVeron также, 2 разных версии
У вас есть две версии jQuery, удалите одну и используйте обработчик document.ready. Предлагаю ознакомиться с learn.jquery.com. Голосование за закрытие как опечатка.



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


Я был здесь раньше.
Попробуйте обернуть свой код следующим:
$( document ).ready(function() {
// Your code here
});
CodePen делает это автоматически.
Ошибка здесь в том, что ваш JavaScript выполняется до загрузки HTML, поэтому ваши #select1 и #select2 на самом деле еще не существуют. Вы ищете что-то, что не загрузилось.
Обновлять
The comment section has made some good points, but my answer is still addressing the primary reason your code has not been working. Here is the full snippet which will run in your browser
<!DOCTYPE HTML>
<html>
<head>
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>=
<script>
$(function() {
var $select1 = $( '#select1' ),
$select2 = $( '#select2' ),
$options = $select2.find( 'option' );
$select1.on( 'change', function() {
$select2.html( $options.filter( '[value = "' + this.value + '"]' ) );
} ).trigger( 'change' );
});
</script>
</head>
<body>
<select name = "select1" id = "select1">
<option value = "1">Fruit</option>
<option value = "2">Animal</option>
<option value = "3">Bird</option>
<option value = "4">Car</option>
</select>
<select name = "select2" id = "select2">
<option value = "1">Banana</option>
<option value = "1">Apple</option>
<option value = "1">Orange</option>
<option value = "2">Wolf</option>
<option value = "2">Fox</option>
<option value = "2">Bear</option>
<option value = "3">Eagle</option>
<option value = "3">Hawk</option>
<option value = "4">BWM
<option>
</select>
</body>
</html>
Можете быть более конкретными? Что именно не работает? Какие ошибки вы видите?