入力フィールドを失わずに「2 年サブスクリプション」を「2 年:」に変更するにはどうすればよいですか?
<div class="radioOption subscription1Col3">
<input class="buyNow" type="radio" name="product2" value="6_0" checked="">2 Year Subscription</div>
入力フィールドを失わずに「2 年サブスクリプション」を「2 年:」に変更するにはどうすればよいですか?
<div class="radioOption subscription1Col3">
<input class="buyNow" type="radio" name="product2" value="6_0" checked="">2 Year Subscription</div>
これは比較的単純で、次のことをお勧めします (ただし、現在はテストされていません)。
var input = $('.radioOption.subscription1Col3 input'),
text = input[0].nextSibling.nodeValue,
newText = text.replace(/ subscription/i,': ');
input[0].nextSibling.nodeValue = newText;
または、調整されたテキストが要素にラップされたままになるため、このバージョンが好まれる可能性がありますlabel
。これにより、UI が支援され、将来そのテキスト コンテンツをターゲットにしやすくなります。
var input = $('#inputID'),
label = $('<label />',{'for' : 'inputID'})
.text(input[0].nextSibling.nodeValue.replace(/ Subscription/i,': '));
input.parent().empty().append(input, label);
ただし、これには、が意味的に に関連付けられるようにinput
、 にid
属性が必要です。label
input
別の方法は、textContent
$('.buyNow')[0].nextSibling.textContent = "New Content"
jQuery はテキスト ノードへのアクセスをサポートしておらず、要素のみをサポートしているため、Javascript で DOM メソッドを使用してテキスト ノードにアクセスする必要があります。
var nodes = $('.radioOption')[0].childNodes;
nodes[nodes.length-1].nodeValue= '2 Year';
デモ: http://jsfiddle.net/Guffa/PDqQW/
テキストの周りに要素を配置する場合:
<div class="radioOption subscription1Col3">
<input class="buyNow" type="radio" name="product2" value="6_0" checked="">
<span>2 Year Subscription</span>
</div>
次に、jQuery だけを使用してアクセスできます。
$('.radioOption span').text('2 Year');