0

html:

<section id="playing" class="gradient">
<div id="playing-header"> … </div>
<div id="playing-carousel"> … </div>
<div id="playing-info">
    <a id="radio-star" class="" href="radio:star"></a>
    <div id="radio-track-info">
        <h2 id="radio-track"> … </h2>
        <h2 id="radio-artist">
            <a class="outgoing">
  JAY Z
            </a>
        </h2>
    </div>
    <div id="thumb-container"> … </div>
</div>
<div id="loading" style="display: none;"></div>
<div id="loading-throbber" style="display: none;"></div>
<div id="station-error" style="visibility: hidden;"> … </div>

jQuery:

alert($('#radio-artist .outgoing').text());

jsfiddle:http: //jsfiddle.net/CT95N/

适用于 jsfiddle,但不适用于网站。返回空。可能是什么问题呢?在dom之后我可以检查什么来调用我的jquery?

谢谢

编辑: $(document).ready(function() { }; 当然已经在开始时调用了,所以这不是重点。

问题是 FIREFOX 正在阻止内容,因为我正在使用 https 网站并试图从该网站获取一些数据。由于该网站不使用 jQuery,我不得不自己附加它,这意味着我在 https 网站内添加了 http 内容。我认为这是因为我通过greasemonkey 脚本从谷歌添加jquery 外部源(附加)。

这是警告:http: //i.imgur.com/oV19dFz.png

我能以更好的方式做到这一点吗?

4

4 回答 4

0

最可能的答案是文档尚未准备好,您应该等到文档加载完毕:

$(document).ready(function() {
    alert($('#radio-artist .outgoing').text());
});
于 2013-08-24T03:30:29.900 回答
0

“我可以检查什么以在 dom 之后调用我的 jquery?”

我认为这意味着你没有用任何东西包装这个警报。您很可能需要确保仅在文档/DOM 准备好并呈现后才调用该函数。jsfiddle 之所以有效,是因为他们很可能会在您的源代码片段中添加这种包装以保持简洁。

$(document).ready(function() {
     alert(....);
});
于 2013-08-24T03:30:56.393 回答
0

试试这个代码

$(document).ready(function(){
alert($('#radio-artist .outgoing').text());
});

根据这段代码,当 DOM 准备好时,jQuery 将被调用。

于 2013-08-24T03:37:20.727 回答
0

好的,想通了。当您使用 https 时,您必须从 hTTPS 而不是 HTTP 附加 jQuery CDN:

    function appendjQuery(){
    var script = document.createElement( "script" );
    script.type = "text/javascript";
    script.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js";
    document.body.appendChild(script);
    document.body.removeChild(script);
    }

干杯。

于 2013-08-24T20:02:57.423 回答