1

私は次のHTMLを持っています:

<span class="drop_cap">3 <span>Dinners</span></span>

その最初の文字を置き換えたい。数はユーザーの操作によって変わるので、「3」だけをつかむことはできません

私はもう試した:

$("drop_cap").text().substr(0,1).replace(var);

$("drop_cap").html().substr(0,1).replace(var);

および同様のもの。

ティア

4

3 に答える 3

2

jQuery は、テキスト ノードの処理があまり得意ではありません。スパン内の最初のノード (テキスト ノード) を編集したいことがわかっているので、次の操作を実行できます。

// This inserts 100 in front of that text node inside drop_cap
$("span.drop_cap").each(function(){
    this.firstChild.nodeValue = "100" + this.firstChild.nodeValue;
});

を使用する例を次に示します。String.replace

$("span.drop_cap").each(function(i){
    this.firstChild.nodeValue = this.firstChild.nodeValue.replace(/\d/, i);
});

例: http://jsfiddle.net/rLGPW/2/http://jsfiddle.net/rLGPW/3/

于 2012-11-14T23:28:34.400 に答える
0

これは、特に数値のみを使用している場合は簡単です。

<input id='number' type='text' readonly='readonly' value='3'>

これで、J-QUERY を使用して入力の値を変更できます。これは、html を変更しようとするよりもバグが少なくなります。

$("#number").val(var);

デフォルトではファンキーな入力ボックススタイルであるため、入力ボックスをcssするようにしてください

于 2012-11-14T23:15:21.060 に答える
0

常に数字とテキストのみがあることがわかっている場合は、単純な正規表現を使用して数字を抽出できると思います。

var num = $('span.drop_cap').text().match(/\d+/)[0]
于 2012-11-14T23:32:08.747 に答える