0

ラベル要素があります:

<form id="new_user">
<div id="first-name">
<label for="user_profile_attributes_first_name"><abbr title="required">*</abbr> First name</label>
</div>
</form>

#new_userに.team-registrationがある場合、テキストの名をチーム名に置き換えたい。どのようにそれをするのが良いですか?

  if $('#new_user').hasClass('team-registration') {
    ....
  }

ありがとう!

4

2 に答える 2

2

1つのセレクターで両方の条件を組み合わせることができませんか?実際の置換に関しては、$.html関数も受け入れます(jQuery 1.4以降):

$("#new_user.team-registration").html(function(i, html) {
    return html.replace("First name", "Team name");
});

これがフィドルです!

注:他の要素を含むように見えるhtml代わりに使用しています。これらのタグを削除してフラットテキストを表示しますが、実際の。text#new_usertexthtmlinnerHTML

注:最初のオカレンスstring.replace(string, string)のみを置き換えます。すべてのオカレンスを置き換える必要がある場合は、正規表現を使用してください。

    return html.replace(/First name/g, "Team name");
于 2012-06-07T09:46:13.003 に答える
0

私は提案します:

if $('#new_user').hasClass('team-registration') {
    var text = $(this).text();
    $(this).text(text.replace('First','Team')
}

上記では、2番目の単語('name')が両方の間で一貫しているため、文字列'First`を置き換えることのみを選択しました。

id="new_user"もちろん、提供されたマークアップには要素が含まれていないことに注意してください。idこのアプローチでは、一致する要素内のテキストが置き換えられるため、正しいセレクターを使用していることを確認することを強くお勧めします。一致した要素の子孫要素で、置き換えられる文字列の出現箇所を検索しようとはしません。

参照:

于 2012-06-07T09:44:34.410 に答える