Sea*_*lin 4 javascript syntax jquery innerhtml
好的,所以我一直在建立这个网站.其中一个页面是新闻源www.wenotelling.x10.mx/news/新闻页面中嵌入了新闻源页面,这是实际更新发生的地方.所有这一切都非常好,并且该网页似乎有效.我有2个问题.
所以我写了一些JScript来一次解决这两个问题.由于新闻源是通过HTML页面更新的,而且我不想每次都要搜索笑脸的URL,我想出了以下代码:http: //www.wenotelling.x10.mx/news/smilescript .js文件
$(document).ready(function()
{
alert("Called");
document.getElementByClass('happy').innerHTML = '<img src="smileys/happy.gif"></img>';
document.getElementByClass('star').innerHTML = '<img src="smileys/star.gif"></img>';
document.getElementByClass('dead').innerHTML = '<img src="smileys/dead.gif"></img>';
document.getElementByClass('yawn').innerHTML = '<img src="smileys/yawn.gif"></img>';
document.getElementByClass('snub').innerHTML = '<img src="smileys/snub.gif"></img>';
document.getElementByClass('relax').innerHTML = '<img src="smileys/relax.gif"></img>';
document.getElementByClass('devil').innerHTML = '<img src="smileys/devil.gif"></img>';
document.getElementByClass('cool').innerHTML = '<img src="smileys/cool.gif"></img>';
document.getElementByClass('wink').innerHTML = '<img src="smileys/wink.gif"></img>';
document.getElementByClass('shock').innerHTML = '<img src="smileys/shock.gif"></img>';
document.getElementByClass('bigsmile').innerHTML = '<img src="smileys/bigsmile.gif"></img>';
document.getElementByClass('confused').innerHTML = '<img src="smileys/confused.gif"></img>';
document.getElementByClass('sad').innerHTML = '<img src="smileys/sad.gif"></img>';
document.getElementByClass('angry').innerHTML = '<img src="smileys/angry.gif"></img>';
document.getElementByClass('clown').innerHTML = '<img src="smileys/clown.gif"></img>';
document.getElementByClass('blush').innerHTML = '<img src="smileys/blush.gif"></img>';
if(location.hash !="#");
{
location = "#";
location.reload(true);
}
alert("A-OK");
});
Run Code Online (Sandbox Code Playgroud)
因此,在编辑时我们可以简单地说<smiley class="happy"></smiley>.我知道笑脸并不是真正的标签,但我认为它不会有所作为,因为我之前见过"faketags".我尝试将笑脸标签更改为<div class="happy"></div>但不起作用.在脚本的最后,我放了一个刷新功能.
无论如何,脚本无法正常工作.它被称为,但没有工作.所以我通过Firebug运行它.Firebug发出以下消息:
SyntaxError: missing ) after argument list
[Break On This Error]
(22 out of range 21)
Run Code Online (Sandbox Code Playgroud)
然后我看了一下脚本,好吧,所有的东西似乎都在那里.不仅如此,第22行之前的表情也不起作用.
无论如何.任何想法为什么:1)笑脸没有出现?2)脚本没有完全执行?
有时javascript错误有点误导,但在您的代码中至少可以发现一个语法错误:
if(location.hash !="#");{
Run Code Online (Sandbox Code Playgroud)
有一个额外的;.也许这就是原因.
顺便说一句,既然你正在使用jQuery,为什么不用它来进行元素选择和html内容设置呢?
在您链接到的脚本中,第19行:
if(location.hash !="#");{
Run Code Online (Sandbox Code Playgroud)
那个分号不应该在那里.(顺便说一句,if块内的线应缩进)
此外,没有这样的事情document.getElementsByClass,只有document.getElementsByClassName,并且返回NodeList而不是单个元素(因此更改innerHTML它将不会做太多.)
其他说明:
在你的网站中,你包括css/stylesheet.css两次(第4行和第12行),实际上是3次,如果算上iframe中的那个.
你正在使用的jquery版本是非常过时的,在这种情况下包含jquery是不合理的 - 你只是用它来做一个$(document).ready,没有jquery可以在没有jquery的情况下完成,如果你有一个(半关闭)window.onload监听器,或者只是把脚本放在靠近的地方</body>
正如评论中所说,我不能同意,不要只是将图像粘贴在这些元素中.添加一个合适的CSS类,让CSS处理它.