1

我有一个脚本从雅虎获取某个主题的新闻。它呈现新闻提要的标题,如下所示:

<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中:

$(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

尝试使用html()而不是empty()text()

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

可能发生的事情:

  1. 首先,您要设置文本:$('.header-title').text('Subject News');
  2. 那么......在数据完成Yahoo的加载或您的文本实际上被新获取的数据替换的任何内容之后

    更改加载回调中的文本(加载数据后),它将起作用。

于 2013-01-06T21:58:54.100 回答
-1

它不起作用,因为您在创建元素之前调用了该函数。如果你把你的函数放在元素<script>之后的标签内,<div>它应该可以工作

于 2013-01-06T21:36:28.167 回答