Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果text()相等,请执行某些操作_Javascript_Jquery - Fatal编程技术网

Javascript 如果text()相等,请执行某些操作

Javascript 如果text()相等,请执行某些操作,javascript,jquery,Javascript,Jquery,问题的标题看起来很简单,解决办法是: $('.weatherCity').each(function () { if ($(this).text() == 'LONDON') { $(this).text('London Weather'); } }); 但是我在雅虎工作!天气插件并且想要更改城市名称,它不是iframe,我们允许更改样式等等。。但是看起来它不允许更改这个插件中的任何文本。我以为浏览器读了我的代码,然后雅虎得到了天气预报,然后我使用了promis

问题的标题看起来很简单,解决办法是:

$('.weatherCity').each(function () {
    if ($(this).text() == 'LONDON') {
        $(this).text('London Weather');
    }
});
但是我在雅虎工作!天气插件并且想要更改城市名称,它不是
iframe
,我们允许更改
样式
等等。。但是看起来它不允许更改这个插件中的任何文本。我以为浏览器读了我的代码,然后雅虎得到了天气预报,然后我使用了
promise().done()
,但没有任何改变

提前谢谢


-jiff

作为解决此问题的方法,您可以这样使用

 var interval = setInterval(function() {
   if ($('.weatherCity').length) {
     $('.weatherCity').each(function() {
       if ($(this).text().trim() == 'London') {
         $(this).text('London Weather');
       }
     });
     clearInterval(interval);
   }
 }, 100);


使用
setInterval
不断检查元素,一旦找到就停止检查。

问题是,包含位置文本的元素会动态附加到DOM中,因此在加载页面时运行代码没有任何效果。你需要在插件加载时运行它,但是插件不会引发任何事件,所以我认为这是不可能的。您可以使用
setTimeout()
,但这是非常不可靠的,也不是很好的做法。根据插件自己的网站,插件本身已经停止使用,你有没有搜索过符合你要求的替代品?@Rorymcrossan我搜索过,这对我的工作来说是最好的,我知道它已经停止使用,但仍然有效。有趣的是,
否决投票
!看起来人们喜欢把选票压到每一个他们无法解决的问题上,我从你的回答中得到了答案,我想知道这是否可能。我不明白他们为什么要投反对票。谢谢你的回答好了,很多人投了反对票,我只是在猜为什么??@jiff你检查我的答案了吗?我想它会满足你的要求。@jiff请参阅使用