Я столкнулся с забавной проблемой для вас!

Используя JQuery, я хочу получить атрибут имени выбранного типа и значение выбранного параметра. в этом примере я хочу этот результат

var selectTypeName = "cars"
var selectedOption = "volvo"

Спасибо !

$( "select" )
  .change(function() {
    var str = "";
    $( "select option:selected" ).each(function() {
      str += $( this ).text() + " ";
    });
    $( "div" ).text( str );
  })
  .trigger( "change" );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="/action_page.php">
<select name="cars">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="opel">Opel</option>
  <option value="audi">Audi</option>
</select>
<input type="submit">
</form>
0
Smaïne 28 Фев 2018 в 11:41

5 ответов

Лучший ответ

Я обновил вашу скрипку:

https://jsfiddle.net/9oj3ufL0/12/

$( "select" )
  .change(function() {
    var str = "";
    $( "select option:selected" ).each(function() {
        var selectTypeName = $(this).closest("select").attr("name");
      var selectedOption = $( this ).text();
      str += "selectTypeName: " + selectTypeName + ",  selectedOption:" + selectedOption + " ";
    });
    $( "div" ).text( str );
  })
  .trigger( "change" );

И я добавил раздел HTML.

2
Marc 28 Фев 2018 в 08:48

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

var selectTypeName = $("select").attr("name");

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

var selectedOption= $('select[name=cars]').val();

Если вы хотите использовать извлеченное имя в первом запросе, используйте это:

var selectedOption= $('select[name=' + selectTypeName +' ]').val();
0
Ali Sheikhpour 28 Фев 2018 в 08:46

Я обновил вашу скрипку https://jsfiddle.net/9oj3ufL0/22/

$(document).ready(function(){
$( "select" ).change(function() {
var str = "";
var name="";
$( "select option:selected" ).each(function() {
  str += $( this ).text() + " ";
  name=$(this).parent().attr("name");
});
 alert(name);
 });
});
0
Negi Rox 28 Фев 2018 в 08:50

Ваш код JS правильный. У вас не было элемента div, который вы пытаетесь заполнить в своем HTML.

Увидеть: https://jsfiddle.net/9oj3ufL0/6/

<form action="/action_page.php">
    <div>
    </div>
    <select name="cars">
0
Pranay Majmundar 28 Фев 2018 в 08:46

Вы можете попробовать это

var selectTypeName = $("SELECTOR").attr('name');
var selectTypeName = $("SELECTOR").val();
0
Abasaheb Gaware 28 Фев 2018 в 08:46