将'this'标识符绑定到元素的函数

时间:2013-12-16 19:43:49

标签: jquery this

使用jquery时,我在html元素中使用标识符This时遇到问题。

预期结果:

每当我从Dropdown中选择语言选项时,都必须验证。我还从下拉列表中选择一个级别。

要做到这一点,我需要将'.LanguageBlock'转换为这个选择器。

尝试:

我的尝试是使用Children()和Parents(),我相信它会起作用,但我遇到了这个选择器的问题。

我想我还必须使用 .each 选择器相结合

HTML

<div class="LanguageBlock">
    <select class="Language">
        <option>Select</option>
        <option value="1">English</option>
    </select>
    <select class="Level">
        <option>Select</option>
        <option value="1">Basic</option>
    </select> <br></br>
</div>
<div class="LanguageBlock">
    <select class="Language">
        <option>Select</option>
        <option value="1">English</option>
    </select>
    <select class="Level">
        <option>Select</option>
        <option value="1">Basic</option>
    </select>
</div>
 <br></br>
    <a id="submit" style="border-radius:50%;border:1px solid red;padding:10px">Submit</a>

的Javascript

var Validator = 1;
$('#submit').bind('click', function(){
  var Language =  $('.LanguageBlock').children('.Language').val();    
  var Level = $('.LanguageBlock').children('.Level').val();  

    if(Language!='' && Level==''){
        Validator = 0;
    }

    if (Validator==0){
        alert('Must select a level for the current language you selected');
        return false;
    }

});

JS Fiddle

1 个答案:

答案 0 :(得分:2)

这样怎么样:

$('#submit').bind('click', function(){
  $('.LanguageBlock').each(function() {
     var Language =  $(this).find('.Language option:selected').val();    
     var Level = $(this).find('.Level option:selected').val();

    if(Language!='Select' && Level=='Select'){
        Validator = 0;
    }

    if (Validator==0){
        alert('Must select a level for the current language you selected');
        return false;
    }

   });
  });

http://jsfiddle.net/t99mU/10/