2016-06-29 3 views
0

HTML文字列の数値を正規表現でグローバルに置き換えようとしていますが、属性にアタッチされていない場合にのみ番号を置き換えます。jQueryはhtmlでグローバルに整数を置き換えます。

私は123番を世界的に置き換えたい。この例の問題は、値の数字だけが変更され、角かっこの間の数字ではないことです。私は何とか私の正規表現を変更する必要があると思います

var oldId = 123; 
var newId = 1234; 

<input type="hidden" name="field_name" value="123"> 
<input type="radio" name="field_name[123]" class="id_123"> 

$('.settings').replace(/oldId/g, newId); 

現在の結果

<input type="hidden" name="field_name" value="1234"> <-- changed 
<input type="radio" name="field_name[123]" class="id_123"> <--- not changed 

に?

+2

あなたはjQueryのオブジェクトが何を持っているんとして 'TypeError'をスローします投稿したコードが含まれている要素の.outerHTMLを交換する.each()RegExpgフラグを使用することができます'replace'メソッドです。 – undefined

答えて

1

あなたはname属性が"field_name"

var oldId = 123; 
 
var newId = 1234; 
 

 
$("input[name*=field_name]").each(function(i, el) { 
 
    el.outerHTML = el.outerHTML.replace(new RegExp(oldId, "g"), newId) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="hidden" name="field_name" value="123"> 
 
<input type="radio" name="field_name[123]" class="id_123">

+0

ありがとうございました! '.replace(新しいRegExp(oldId、 "g")、newId)のコードの一部を取り、これがやった。どうもありがとう! =) – directory

関連する問題