2012-04-05 88 views

回答

1

这并不工作,希望它的你正在寻找:

FIDDLE

$(document).ready(function(){ 
 
    $('.parent').each(function(){ 
 
      var theVal = $(this).find('select option:selected').html(); 
 
      $(this).find('p').html(theVal); 
 
     }); 
 
    $('.single').change(function(){ 
 
     $('.parent').each(function(){ 
 
      var theVal = $(this).find('select option:selected').html(); 
 
      $(this).find('p').html(theVal); 
 
     }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div class="inputArea"> 
 
    <div class="parent"> 
 
    <select class="single"><option selected value="uzbuve">Uzbūve</option> 
 
     <option value="paligteikuma-veids">Palīgteikuma Veids</option> 
 
     <option value="gramatiskais-centrs">Gramatiskais Centrs</option> 
 
     <option value="saistitajvarda-kategorija">Saistītājvārda kategorija</option> 
 
     <option value="saistitajvards">Saistītājvārds</option> 
 
    </select> 
 
    <input class="inpt" id="" type="text" name=""> 
 
    <p class="java">saistitajvards</p> 
 
    </div> 
 
    <div class="parent"> 
 
    <select class="single"><option value="uzbuve">Uzbūve</option> 
 
     <option selected value="paligteikuma-veids">Palīgteikuma Veids</option> 
 
     <option value="gramatiskais-centrs">Gramatiskais Centrs</option> 
 
     <option value="saistitajvarda-kategorija">Saistītājvārda kategorija</option> 
 
     <option value="saistitajvards">Saistītājvārds</option> 
 
    </select> 
 
    <input class="inpt" id="" type="text" name=""> 
 
    <p class="java">saistitajvards</p> 
 
    </div> 
 
    <div class="parent"> 
 
    <select class="single"><option value="uzbuve">Uzbūve</option> 
 
     <option value="paligteikuma-veids">Palīgteikuma Veids</option> 
 
     <option selected value="gramatiskais-centrs">Gramatiskais Centrs</option> 
 
     <option value="saistitajvarda-kategorija">Saistītājvārda kategorija</option> 
 
     <option value="saistitajvards">Saistītājvārds</option> 
 
    </select> 
 
    <input class="inpt" id="" type="text" name=""> 
 
    <p class="java">saistitajvards</p> 
 
    </div> 
 
    <div class="parent"> 
 
    <select class="single"><option value="uzbuve">Uzbūve</option> 
 
     <option value="paligteikuma-veids">Palīgteikuma Veids</option> 
 
     <option value="gramatiskais-centrs">Gramatiskais Centrs</option> 
 
     <option selected value="saistitajvarda-kategorija">Saistītājvārda kategorija</option> 
 
     <option value="saistitajvards">Saistītājvārds</option> 
 
    </select> 
 
    <input class="inpt" id="" type="text" name=""> 
 
    <p class="java">saistitajvards</p> 
 
    </div> 
 
    <div class="parent"> 
 
    <select class="single"><option value="uzbuve">Uzbūve</option> 
 
     <option value="paligteikuma-veids">Palīgteikuma Veids</option> 
 
     <option value="gramatiskais-centrs">Gramatiskais Centrs</option> 
 
     <option value="saistitajvarda-kategorija">Saistītājvārda kategorija</option> 
 
     <option selected value="saistitajvards">Saistītājvārds</option> 
 
    </select><input class="inpt" id="" type="text" name=""> 
 
    <p class="java">saistitajvards</p> 
 
    </div> 
 
    
 
</div>

+0

哦,它确实适用于底部值,您将该值作为所有P标签中的默认值。 – 2012-04-05 09:14:30

+0

哦,是的INDEED!非常感谢! :) – Rozkalns 2012-04-05 09:22:09

0

您的代码:

$(".inputArea").each(function(i){ 
     var singleValues = $("option:selected").val(); 
     $("p").html(singleValues); 
    }); 

有几个问题:

  • $(".inputArea").each(function(i){说处理每个元素与类“inputArea”,但只有一个,你的容器div。
  • $("option:selected")匹配全部所选选项元素,但随后
  • var singleValues = $("option:selected").val();获取选择第一选项的值。
  • $("p").html(singleValues);设置内容全部段落元素。

你可以尝试这样的东西,而不是:

$("select.single").each(function(i){ 
    var $this = $(this); 
    $this.nextUntil("p").next().html($this.val()); 
}); 

演示:http://jsfiddle.net/mYNXF/

它说处理类 “单” 的所有选择的元素。对于每一个,找到以下段落元素并设置其值。请注意,.next() method选择紧随其后的元素,或者没有任何内容,它不会继续搜索以查找匹配项,而.nextUntil()将搜索最多但未包含与选择器匹配的第一个元素。在html结构中,段落元素不会立即跟随se​​lect元素,所以这就是我使用.nextUntil("p").next()的原因。

或者你可以做这样的事情:

var $inputArea = $(".inputArea"), 
    $selects = $inputArea.find("select.single"), 
    $ps = $inputArea.find("p.java"); 

function displayVals() { 
    for (var i = 0; i < $selects.length; i++) { 
     $ps.eq(i).html($selects.eq(i).val()); 
    } 
} 

演示:http://jsfiddle.net/mYNXF/2/

无论哪种方式,可与当前的HTML结构。

相关问题