0

次のhtmlマークアップがあります

<body>
  <div class="old-wrapper">
    ...lots of stuff
  </div>
</body>

次のマークアップを与えるには、これを coffeescript 関数に置き換える必要があります

<body>
  <div class="new-wrapper">
    <input type="text" class="date-picker">
  </div>
</body>

.old-wrapperターゲットとして使用する必要があります

私のcoffeescript関数は次のようになります

jQuery ->
  $(".old-wrapper").repaceWith(
    $("<div class='new-wrapper'>") +
    $("<input type='text' class='date-picker'>").datepicker +
    $("</div>")
  )

これらの文字列を replaceWith 関数内で連結する正しい方法は何ですか? (申し訳ありませんが、これは非常に基本的な JavaScript 構文の質問ですが、私の JavaScript の知識は限られています)

4

4 に答える 4

0

これはうまくいくはずです!

jQuery ->
    $('.date-wrapper')
        .append($('<div class="wrapper" />'))
        .find('.wrapper')
        .append($('<input type="text" class="date-picker">').datepicker())
于 2013-04-09T08:53:04.757 に答える
0

たぶん、このように..

jQuery ->
  $('.date-wrapper').append(
    $('<input type="text" class="date-picker" id="user_dob" value="' + dob + '" name="user[dob]" />').datepicker()
  ).wrapInner('<div class="wrapper" />')
  $('.wrapper').unwrap()

要素を置き換える代わりに、datepicker-input 要素を追加し、必要に応じてラップしてから、ラップ要素を で削除しunwrapます。

編集

質問を読み直した後、私は少し間違った方法であることがわかりました;-)

問題の最も簡単な解決策は、すべての日付ラッパー要素を既に行ったように単純に置き換えてから、これらすべてを新しいラッパーでラップすることではありませんか?

dob = '2013/4/9'
$ ->
  $('.date-wrapper').replaceWith($('<input type="text" class="date-picker" id="user_dob" value="' + dob + '" name="user[dob]" />').datepicker())      
  $('.date-picker').wrapAll('<div class="wrapper" />')

生産する

<div class="wrapper">
    <input id="user_dob" class="date-picker hasDatepicker" type="text" name="user[dob]" value="2013/4/9">
</div>
<div id="ui-datepicker-div" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>

フィドルを見る

于 2013-04-09T08:31:44.603 に答える
0

最初に構文エラーがあります。

$("<div class="wrapper>")
  ^           ^        ^
open        close     ???

そのコードの残りの部分も同様に無効です。

これを試して:$(".date-wrapper").wrapInner('<div class="wrapper" />');

サイトのチュートリアルセクションをご覧ください: http://docs.jquery.com/Tutorials

于 2013-04-09T08:09:32.740 に答える