我正在研究Greasemonkey脚本,我大致有以下内容:
使用Javascript:
var togglingLink = document.createElement("a");
$(togglingLink)
.attr('href', 'somelink')
.html('<div>foo</div><div style="display:none">bar</div>');
$(togglingLink).children().toggle();
// Then I insert it into the page.
这就是HTML:
<a href="somelink">
<div>foo</div>
<div style="display:none">bar</div>
</a>
$()。toggle()仅使隐藏的div可见,它不隐藏可见的div。我在这里缺少什么?
James' jsfiddle确实有效。但是我的Greasemonkey脚本中的相同代码无效。
根据博贝克的回答,我也尝试将div更改为跨度,但这并没有为我解决。
答案 0 :(得分:2)
我终于弄明白了。在将元素附加到页面之前,我实际上正在运行$().toggle();
。这就是导致jQuery无法按预期切换的原因。一旦我做了$().toggle();
在追加后发生了,那么它就能正常工作。
答案 1 :(得分:1)
在<div>
内<a>
在HTML中无效&lt; 5,某些浏览器可能无法使用它。将您的<div>
更改为<span>
,然后查看是否有效。