構文の問題を引き起こす変数を含む名前セレクタ

これを理解することはできません。私のループはうまく動作すると確信していますが、私の名前セレクタの構文と変数に誤りがあります。角括弧と引用符の組み合わせをいろいろ試しました。私はセレクタとして名前を使用する必要があり、私の目的は実行時にチェックマークを付けることです。

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"> <div class="snippet-code">

var TabMonths = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
var imonth;
var KEYyear

KEYyear = "2016"


// LOOP CODE from Jan - Dec
for (imonth = 0; imonth < TabMonths.length; imonth++)

{ $('[name ="' + KEYyear + TabMonths[imonth]'"]').prop('checked',true);}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="mymonths">












</div>
</div> </div>

1

4 答え

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"> <div class="snippet-code">

var TabMonths = ["Jan", "Feb", "Mar"];
var imonth;
var KEYyear

KEYyear = "2016"
for (imonth = 0; imonth < TabMonths.length; imonth++)
{ $('[name ="' + KEYyear + TabMonths[imonth]+'"]').prop('checked',true);}//missing + at the end of concat
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="mymonths">



</div>
</div> </div>

  1. Missing +
3
追加された
あなた方全員に感謝します。私はそれを逃したとは信じられない。 @guradioは最速でした。
追加された 著者 Silverburch,

式全体を結合(連結)できなかった

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"> <div class="snippet-code">

$(document).ready(function(){
var TabMonths = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
var imonth;
var KEYyear= "2016";
// LOOP CODE from Jan - Dec
for (imonth = 0; imonth < TabMonths.length; imonth++){
    $('[name *="' + KEYyear+'"]').prop('checked',true);
}

})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="mymonths">












</div>
</div> </div>

また、 TabMonths の使用を省略し、 name 属性の部分文字列と一致させるために * を使用することもできます。

1
追加された

これは jQuery .each()イテレータを使用してループを見栄えよくするためのもう1つの方法です。

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"> <div class="snippet-code">

var TabMonths = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
var imonth;
var KEYyear

KEYyear = "2016"


// LOOP CODE from Jan - Dec
$(TabMonths).each(function(){
  
 //this --> current month item
  $('[name ="' + KEYyear + this + '"]').prop('checked',true);

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="mymonths">












</div>
</div> </div>

0
追加された

ここに作業コードがあります、小さなタイプミスがありました。この行に '+'がありませんでした。

$( '[name = "' + KEYyear + TabMonths [imonth] + '"]')。prop( 'checked'、true);

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"> <div class="snippet-code">

var TabMonths = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
var imonth;
var KEYyear;

KEYyear = "2016";

// LOOP CODE from Jan - Dec
for (imonth = 0; imonth < TabMonths.length; imonth++)

{
  $('[name ="' + KEYyear + TabMonths[imonth] +
    '"]').prop('checked', true);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="mymonths">
  
  
  
  
  
  
  
  
  
  
  
  
</div>
</div> </div>

0
追加された