0

入力フィールドを失わずに「2 年サブスクリプション」を「2 年:」に変更するにはどうすればよいですか?

<div class="radioOption subscription1Col3">
<input class="buyNow" type="radio" name="product2" value="6_0" checked="">2 Year Subscription</div>
4

3 に答える 3

2

これは比較的単純で、次のことをお勧めします (ただし、現在はテストされていません)。

var input = $('.radioOption.subscription1Col3 input'),
    text = input[0].nextSibling.nodeValue,
    newText = text.replace(/ subscription/i,': ');
input[0].nextSibling.nodeValue = newText;

JS フィドルのデモ

または、調整されたテキストが要素にラップされたままになるため、このバージョンが好まれる可能性がありますlabel。これにより、UI が支援され、将来そのテキスト コンテンツをターゲットにしやすくなります。

var input = $('#inputID'),
    label = $('<label />',{'for' : 'inputID'})
    .text(input[0].nextSibling.nodeValue.replace(/ Subscription/i,': '));
input.parent().empty().append(input, label);

JS フィドルのデモ

ただし、これには、が意味的に に関連付けられるようにinput、 にid属性が必要です。labelinput

于 2012-07-10T11:14:14.857 に答える
1

別の方法は、textContent

$('.buyNow')[0].nextSibling.textContent = "New Content"
于 2016-08-05T00:21:07.677 に答える
0

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');

デモ: http://jsfiddle.net/Guffa/tRdYa/

于 2012-07-10T11:23:29.243 に答える