通过单击选项获得价值

时间:2018-12-18 16:38:53

标签: javascript jquery

$('.sela > option').on('click', function() {
  console.log($(this).text());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select class='sela'>
  <option>lorem</option>
  <option>ipsum</option>
</select>

因此,无论选项是否更改,在控制台中单击lorem都应设置lorem,单击ipsum时应将ipsum设置为控制台。

有可能吗?

2 个答案:

答案 0 :(得分:1)

您可以尝试等待元素的更改,然后使用console.log显示值。

$('.sela').on('change', function(){
  var $this = $(this),
      $value = $this.val();

  console.log($value);

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select class='sela'>
<option>lorem</option>
<option>ipsum</option>
</select>

答案 1 :(得分:0)

当然可以,但是我首先会在每个选项中生成一个值,然后您可以使用jQuery进行选择:

$('.sela option[value="1"]')

如果还没有值,则需要标识每个选项,最简单的方法是增加一个计数器。或者,如果您100%确定使用$(".sela option[value="1"]").text()$(this).find("option:selected").text();

不会使用相同的选项,请使用该选项的文本

如果您甚至都不知道如何添加选项,请遍历选择并替换每个选项:)

编辑:

var allOptions = $('.sela')[0];

for(var i=0; i < allOptions.length; i++) {
    console.log(allOptions[i].value);
    allOptions[i].option = new Option('My option', 'i');
}