「'param-' + ('000' + (index + 1)).slice(-3);」
HTML
1(実行後のHTML) 2<p id="param-001">さまざまなWebサイトでjQueryが活躍しています</p> 3<p id="param-002">jQuery UIはjQueryにウィジェットなどの拡張するプラグインです</p>
上記のコードをテンプレートリテラルで記述したいのですが、どうしてもうまく作動してくれません。
よろしくお願い致します。
「改訂新版jQuery本格入門 P199 リスト5-14」のコードより。一部編集を加えています。
jQuery
1(追記) 2su507さんとCocodeさんのアドバイスから、私なりのコードの読み解き方。 3「`param-${`000${index + 1}`.slice(-3)}`」 4上記のコードは三段階に分けて理解する必要がある。 5 6第一段階 : テンプレートリテラルの一番深い内部部分 : `000${index + 1}` 7第二段階 : テンプレートリテラルの中間部分 : ${第一段階.slice(-3)} 8第三段階 : テンプレートリテラルの外側部分 : `param-第二段階` 9 10こんな感じでしょうか?
jQuery
1$(function() { 2 const param = [ 3 `さまざまなWebサイトでjQueryが活躍しています`, 4 `jQuery UIはjQueryにウィジェットなどの拡張するプラグインです` 5 ]; 6 7 $.each(param, function(index, text) { 8 const tagId = 'param-' + ('000' + (index + 1)).slice(-3); // 疑問の箇所 9 $('div').append($('<p>', { 10 id : tagId, 11 text : text 12 })); 13 }); 14});
HTML
1<body> 2 <div> 3 </div> 4</body>
jQuery
1失敗例 21. const tagId = `${ param }-000${ index + 1 }.slice(-3)`; 3// idの値がおかしくなる。 4 52. const tagId = `param-${('000'${(index + 1)})}.slice(-3)`; 6// Uncaught SyntaxError: missing ) in parenthetical 7 83. const tagId = `${param}-000`${(index + 1)}`.slice(-3)`; 9// Uncaught SyntaxError: unexpected token: identifier 10 114. const template = `000${index + 1}.slice(-3)`; 12 const tagId = `${param}-${template}`; 13// idの値がおかしくなる。
回答1件
あなたの回答
tips
プレビュー