1

特定のテーマに関するニュースを Yahoo から取得するスクリプトがあります。ニュース フィードのタイトルを次のようにレンダリングします。

<div class="header-title">subject - Yahoo! News Search Results</div>

これを別の読み方に変更したいと思います。これはJS経由で挿入されるので、jQueryでこれを変更できると思いました。

私はこれを試みました:

$('.header-title').text('Subject News');

それはうまくいかなかったので、私はこれを試みました:

$('.header-title').empty();
$('.header-title').text('Subject News');

それもうまくいきませんでした。

上記の方法はどちらも、テキストに影響を与えていないように見えます。

古いテキストを削除して自分のテキストに置き換えるにはどうすればよいかわかりません。

注: 私のコードはすべて jQuery の Document Ready IE 内にあります。

$(function(){ 
   //Code Here 
});    
4

5 に答える 5

3

コードをDOM Readyに入れることを忘れないでください:

$(function() {
    $(".header-title").text("Subject News");
});

それ以外の場合、コードは正常に動作するはずです。

于 2013-01-06T21:14:40.023 に答える
1

このソリューションは、フィードウィジェットを作成する他のスクリプトにアクセスできないことを前提としています

他のスクリプトについて詳しく知らなくても、非同期のように聞こえ、タイトル要素も作成します。要素が存在するかどうかをチェックし、存在したら更新を行う時間間隔ループを作成できます。

function changeYahooTitle(){
     var $yhooTitle=$('.header-title');
    if($yhooTitle.length){
        $yhooTitle.text('My New Title');
    }else{
        /* doesn't exist so check again in 1/10th second, will loop recursively until found*/
        setTimeout(changeYahooTitle, 100);
    }
}

次に、ページの読み込み時に:

$(function(){
  changeYahooTitle()

})

他のスクリプトにアクセスできる場合は、ニーズに合わせて変更することも、このソリューションを使用することもできます

于 2013-01-06T21:35:21.153 に答える
0

おそらく何が起こっているのか:

  1. まず、テキストを設定します。$('.header-title').text('Subject News');
  2. 次に...データがYahooまたはテキストのロードを完了した後、実際に新しいフェッチされたデータに置き換えられます

    ロードコールバック内のテキストを変更すると(データがロードされた後)、機能します。

于 2013-01-06T21:58:54.100 に答える
0

andhtml()の代わりに使用してみてくださいempty()text()

$(document).ready(function(){
    $(".header-title").html("Subject News");
});
于 2013-01-06T21:16:01.913 に答える
-1

要素が作成される前に関数を呼び出すため、機能しません。<script>要素の後のタグ内に関数を配置すると、機能<div>するはずです

于 2013-01-06T21:36:28.167 に答える