在jquery中使用选项文本而非选项值触发选择框事件

时间:2015-06-30 09:34:42

标签: javascript jquery

// In jquery
$('.check').val('two').trigger('change');
// and html is 
<select class="check">
<option value="one">First</option>
<option value="two">Second</option>
</select>

http://jsfiddle.net/v7QWd/353/ 我需要使用我的文本值触发事件,即&#34; First&#34;在jquery。有什么解决方案吗?在这里,我使用了.val(&#39; two&#39;)而我希望使用&#34; First&#34; ..

3 个答案:

答案 0 :(得分:0)

我认为你要做的是按文本选择选项,如果可以,你可以使用:contains() - 但它可以给出预期的匹配,因为它将使用部分匹配

所以试试

&#13;
&#13;
$(function() {
  $('.check').change(function() {
    var data = $(this).val();
    snippet.log('data:' + data)
      //if you want the selected text
    var text = $(this).find('option:selected').text();
    snippet.log('text:' + text)
  });

  $('.check option').filter(function() {
    return $(this).text() == 'Second'
  }).prop('selected', true)
  $('.check').trigger('change');
});
&#13;
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>


<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select class="check">
  <option value="one">First</option>
  <option value="two">Second</option>
</select>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

使用.text()获取所选的选项文本,.change()最初在加载时触发

$('.check').change(function(){
  var data= $(this).find("option:selected").text();
  if(data == 'First'){
      // your logic
   }            
}).change();

Fiddle

答案 2 :(得分:0)

if ($('.check option:selected').text() == "First") {
        $('.check').trigger('change');
    }  

$(function () {

    //change to two ? how?

    $('.check').change(function () {
        var data = $(this).val();
        alert(data);
    });
    if ($('.check option:selected').text() == "First") {
        $('.check').trigger('change');
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="check">
    <option value="one">First</option>
    <option value="two">Second</option>
</select>