我正在使用jQuery创建一个出现在对话框中的链接TOC。我写的这个函数找到了页面中的所有h4
和
id
链接到li
s title
和href
添加到主页,以便链接指向原始h4
s li
s li
附加到ol
对话框中div
但是,在 IE7 中,克隆的h4
未进入li
。适用于FireFox。在IE7中,一切都像在FireFox中那样发生,只是.replaceWith()
看似忽略了......为什么?
看起来像这样:
$('#content h4').each(function(index) {
index = index + 1;
$(this)
.attr('id', 'tutorial_' + index)
.before(function() {
return '<div class="how_to">HOW TO<div><span>' + index + '</span></div></div>';
})
.clone()
.replaceWith("<li>" + $(this).text() + "</li>")
.wrapInner("<a></a>")
.find('a')
.click(function(){
$("#dialog").dialog("close");
})
.attr({
'title': 'jump to ' + $(this).text(),
'href': '#tutorial_' + index
})
.end()
.appendTo('#dialog ol')
});
答案 0 :(得分:1)
我真的不明白人们为什么如此喜欢克隆...... :)。
我会做像
这样的事情$('#content h4').each(function(index) {
index = index + 1;
$(this)
.attr('id', 'tutorial_' + index)
.before(function() {
return '<div class="how_to">HOW TO<div><span>' + index + '</span></div></div>';
})
.clone()
.html("<li>" + $(this).text() + "</li>")
.wrapInner("<a></a>")
.find('a')
.click(function(){
$("#dialog").dialog("close");
})
.attr({
'title': 'jump to ' + $(this).text(),
'href': '#tutorial_' + index
})
.end()
.appendTo('#dialog ol')
});
但那只是我:)。
编辑:在阅读关于replaceWith()的“很多”之后 - IE7&amp; IE6自......永远。所以我放弃了我的功能,拿走你的功能并用replaceWith
替换html
- 在这种情况下你可以按照你想要的方式工作,即替换item的html并返回自己。
至于replaceWith,你可能遇到了网络与IE7之一的错误;)
答案 1 :(得分:0)
该页面脚本中有一些拼写错误
http://f1shw1ck.com/jquery_sandbox/tutorials.html
第43行:
$('#dialog ol').
你必须删除那个点
第61行:
我不认为}); 应该在那里!