jQuery切换不隐藏可见元素

时间:2013-11-01 20:15:26

标签: javascript jquery

我正在研究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更改为跨度,但这并没有为我解决。

2 个答案:

答案 0 :(得分:2)

我终于弄明白了。在将元素附加到页面之前,我实际上正在运行$().toggle();。这就是导致jQuery无法按预期切换的原因。一旦我做了$().toggle();在追加后发生了,那么它就能正常工作。

答案 1 :(得分:1)

<div><a>在HTML中无效&lt; 5,某些浏览器可能无法使用它。将您的<div>更改为<span>,然后查看是否有效。