Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.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中的HTML存在问题_Javascript_Jquery_Html_Jquery Plugins - Fatal编程技术网

Javascript中的HTML存在问题

Javascript中的HTML存在问题,javascript,jquery,html,jquery-plugins,Javascript,Jquery,Html,Jquery Plugins,我正在尝试使用JQuery timeago插件在我的网站中实现“timeago”功能。不幸的是,我遇到了一些问题 <script type="text/javascript" charset="utf-8"> jQuery("abbr.timeago").timeago(); </script> var content = document.getElementById('div'); var html = "<abbr class=timeago title=

我正在尝试使用JQuery timeago插件在我的网站中实现“timeago”功能。不幸的是,我遇到了一些问题

<script type="text/javascript" charset="utf-8">
jQuery("abbr.timeago").timeago();
</script>

var content = document.getElementById('div');

var html = "<abbr class=timeago title=2008-07-17T09:24:17Z></abbr>" + '<br>';
content.innerHTML += html

<div id='div'></div>
这个jquery插件基本上从标题转换时间戳,并为每个abbr class=timeago以良好的格式打印它。问题是上面的代码不起作用,但是如果我将它放在这个div中,它就可以正常工作。我认为这可能是因为jquery插件是在javascript生成html之前应用的,但我不确定。有什么想法吗

var html = "<abbr class=timeago title=2008-07-17T09:24:17Z></abbr>" + '<br><br>';
首先,将属性放在引号中:

var html = "<abbr class=\"timeago\" title=\"2008-07-17T09:24:17Z\"></abbr>" + '<br><br>';
此外,请参阅本页:

ABBR标记的要点是为爬虫程序等提供有关内联元素的附加信息。我很难想出一个理由,你可能想用这个约会时间

我想说的是,与其在一个你不太熟悉的插件中爬行,不如试着找出它为什么喜欢div而不是abbr,只要使用div即可。如果它必须是一个内联元素,请使用

首先,将属性放在引号中:

var html = "<abbr class=\"timeago\" title=\"2008-07-17T09:24:17Z\"></abbr>" + '<br><br>';
此外,请参阅本页:

ABBR标记的要点是为爬虫程序等提供有关内联元素的附加信息。我很难想出一个理由,你可能想用这个约会时间


我想说的是,与其在一个你不太熟悉的插件中爬行,不如试着找出它为什么喜欢div而不是abbr。只要使用div。如果它必须是一个内联元素,请使用。

我敢打赌,问题是,在你将元素放入页面之前,你初始化timeago插件的语句正在运行。因此,当它运行时,什么也不会发生

既然已经有了jQuery,为什么还要用原始代码添加到DOM中呢

$('#div').append($('<abbr/>')
  .addClass('timeago')
  .attr('title', '2008-07-17T09:24:17Z')
).append($('<br/>')).append($('<br/>'))
.find('abbr.timeago').timeago();

也就是说,找到类timeago的所有元素,并在每个元素上初始化timeago插件。这并不意味着,任何时候页面上有一个元素,并且它有类timeago,那么请确保为它设置了timeago插件

我敢打赌,问题在于您初始化timeago插件的语句在您将元素放入页面之前正在运行。因此,当它运行时,什么也不会发生

既然已经有了jQuery,为什么还要用原始代码添加到DOM中呢

$('#div').append($('<abbr/>')
  .addClass('timeago')
  .attr('title', '2008-07-17T09:24:17Z')
).append($('<br/>')).append($('<br/>'))
.find('abbr.timeago').timeago();

也就是说,找到类timeago的所有元素,并在每个元素上初始化timeago插件。这并不意味着,任何时候页面上有一个元素,并且它有类timeago,那么请确保为它设置了timeago插件

我自己想出来的。使用jQuery.timeagotimestamp函数比处理abbr等更好

我自己想出来的。使用jQuery.timeagotimestamp函数比处理abbr等更好

引号并不总是必需的,在本例中,在HTML中也不需要引号。这不应该是问题所在,尽管一直使用它们是一种很好的做法。谢谢,我没有使用引号只是为了测试的目的,因为我认为这可能会导致问题。无论如何,我将它改为div,这很好,但它并不能解决问题:/quote并不总是必需的,在本例中HTML中也不需要。这不应该是问题所在,尽管一直使用它们是一种很好的做法。谢谢,我没有使用引号只是为了测试的目的,因为我认为这可能会导致问题。不管怎样,我把它改成了div,这很好,但并不能解决问题:/我这样做的原因是我在循环中使用它,我有多个不同日期的tomeago div。您的代码肯定会更简单、更优雅,但这不是我所需要的。如果您在页面末尾或$document.ready函数中运行代码,它将对页面上的每个匹配元素执行。在这种情况下,如果是,但请注意,在最初的问题中,元素是通过Javascript动态添加到页面的。@Vafello我仍然怀疑您的根本问题是,您需要在将内容添加到页面后调用timeago初始化,而不是在之前。添加timeago节的代码在哪里?为什么不在最后设置jQuery插件呢?我这样做的原因是我在一个循环中使用它,我有多个不同日期的tomeago div。您的代码肯定会更简单、更优雅,但这不是我所需要的。如果您在页面末尾或$document.ready函数中运行代码,它将对页面上的每个匹配元素执行。在这种情况下,如果是,但请注意,在最初的问题中,元素是通过Javascript动态添加到页面的。@Vafello我仍然怀疑您的根本问题是,您需要在将内容添加到页面后调用timeago初始化,而不是在之前。添加timeago节的代码在哪里?为什么不在最后直接设置jQuery插件呢?