-2

タグ内にいくつかのテキストがあり<span></span>、ページが読み込まれたときにそのテキストを別のものに変更したいと考えています。

したがって、デフォルトのテキストが「ストーリー」であるとしましょう (一部の CMS システムによって出力され、編集できません)。そのため、ページが読み込まれると、.js はその「ストーリー」という単語を検出し、「このストーリーを表示」に置き換えます。

それはどういうわけか可能ですか?

乾杯

更新:質問する前に検索しましたが、見つかった方法はどれも機能しませんでした。テキストがCMSによって出力され、間違ったタイトルが付けられると言ったように、タイトル自体は他の用語や正しいタグ付けに使用されるため、CMS経由で編集できないため、ページの読み込み時に名前を変更するjsの回避策を探していました.

また、span には ID がなく、ID を指定することはできません。前述のように、CMS によって設計されたとおりに機能するからです。

<div class="views-row views-row-1 views-row-odd views-row-first active">
  <div class="views-field views-field-name">
    <span class="field-content">Story</span>
  </div>
</div>
<div class="views-row views-row-2 views-row-even">
  <div class="views-field views-field-name">
   <span class="field-content">Second Story</span>
  </div>
</div>

ご覧のとおり、スパンには ID がありませんが、繰り返しクラスのみがあります。

4

5 に答える 5

2

OPリクエストに従って更新

スパン内の任意のテキストを置き換えることができます。より柔軟にするために正規表現を使用することもできますが、ここではそのままにしておきます。

ネイティブ Javascript

var lookupSpanAndReplace = function(textFrom, textTo) {
   var spans = document.getElementsByTagName('span');

   for (i=0; i<spans.length; i++) 
      if (spans[i].innerHTML.indexOf(textFrom) >= 0)
          spans[i].innerHTML = mySpan.innerHTML.replace(textFrom, textTo);
}

lookupSpanAndReplace("Story", "My New Text");

jQuery

var lookupSpanAndReplace = function(textFrom, textTo) {
    $('span:contains(' + textFrom + ')').each(function(index, element) { 
        $(element).text($(element).text().replace(textFrom, textTo));
    });
}

lookupSpanAndReplace("Story", "My New Text");
于 2013-10-01T16:29:27.880 に答える
1

試す

$('#spanID').text("View This Story");

または、テキストの一部を置き換えたい場合

$('#spanID').text(function () {
    return this.innerHTML.replace('Story', 'View This Story');
});
于 2013-10-01T16:29:05.663 に答える
0

spanID を指定して、そのノードで実行しtext([your new text])ます。

HTML

<span id="mySpan">Story</span>

jQuery

$('#mySpan').text("View This Story");

JSFiddle と jQuery

または、jQuery なしで実行できます。

document.getElementById("mySpan").innerHTML = "View This Story";

普通の Javascript を使った JSFiddle

于 2013-10-01T16:29:44.660 に答える
0
<script>
function changeSpan(){
   var spans = document.getElementsByTagName ("span");
   for (i = 0; i < spams.length; i++){
      spans[i].innerHTML = textThatYouWant ();
   }
}

</script>

<head onload="changeSpan()" >
   <tile> ... </title>
</head>
<body>
...
</body>
于 2013-10-01T16:37:36.830 に答える