我正在尝试编写一个循环遍历一系列div的函数,单个包含small
元素的div,克隆small
元素的内容,搜索另一个块在页面上找到其索引与循环中当前div的索引匹配的li
元素,然后将从小element
克隆的内容插入该div中的span
元素。
我已经开始工作,直到应该将克隆内容插入li
的部分。什么都没发生。此外,当我尝试将其放入函数中时,整个事情都会失败,如我已注释掉的代码所示。任何帮助将不胜感激。
//function NewPosts(){
jQuery('div.tracked_tags > div').each(function (i) {
var thisIndex = jQuery(this).index();
if (jQuery(this).find('small').length){
var postCount = jQuery(this).find('small').contents().clone();
//alert('Hey'+postCount.html()+''+thisIndex+'');
jQuery('div#right_column ul#tracked_tags li:eq('+thisIndex+')').find('.count').contents(postCount).alert(postCount);
//setTimeout(arguments.callee, 30000);
}
});
//};
Here's the fiddle.警报并不重要,我只是坚持进行故障排除。
根据建议,这基本上就是我开始使用的代码:
<div class="tracked_tags">
<div>
<small id="blah" class="count">10 new posts</small>
</a>
</div>
<div>
<small id="blah2" class="count">5 new posts</small>
</a>
</div>
</div>
<ul id="tracked_tags">
<li><a href=""><span class="count"></span></a></li>
<li><a href=""><span class="count"></span></a></li>
</ul>
这就是我想要的结果:
<ul id="tracked_tags">
<li><a href=""><span class="count">10 new posts</span></a></li>
<li><a href=""><span class="count">5 new posts</span></a></li>
</ul>
编辑:我不确定原因,但是将内容从一个元素复制/粘贴到另一个元素的代码部分突然开始工作。我已经调整了一些东西,所以我不知道到底是做了什么,但是huzzah!
然而,整个事情仍然失败的是我取消注释包装它的功能。我需要它在一个函数中,以便它可以每30秒重新运行一次。
答案 0 :(得分:1)
答案 1 :(得分:0)
评论代码:
//function NewPosts(){
//};
^---REMOVE THIS
更多事情:
似乎.contents()仅作为getter使用,而不是像.contents(postCount)
所暗示的那样设置为api reference。
答案 2 :(得分:0)
关键问题:
.alert()
不是属性,不能被链接。NewPosts
)中,除非从myFunction()
(或稍后注入的<script>
节点)中调用,否则代码不会触发。小问题:
.contents()
或.html()
。只需使用.text()
.clone()
没有必要/点。无论如何,修复问题1,2和3会使代码看起来有效。请参阅this fiddle。
function NewPosts () {
jQuery('div.tracked_tags > div').each(function (i) {
var thisIndex = jQuery(this).index();
if (jQuery(this).find('small').length){
var postCount = jQuery(this).find('small').contents().clone();
//alert('Hey'+postCount.html()+''+thisIndex+'');
jQuery('div#right_column ul#tracked_tags li:eq('+thisIndex+')').find('.count').contents(postCount);
//setTimeout(arguments.callee, 30000);
}
});
};
NewPosts ();