jQuery toggle()并且只复制可见文本而不使用remove()

时间:2014-02-26 16:28:41

标签: jquery css toggle

这是我的代码:

<div class="post-content">
    <span class="togglers complete">
        <a class="toggler" href="#" title="change" style="display: none;">I'm sending</a>
        <span class="divider" style="display: none;">|</span>
        <a class="toggler selected" href="#" title="change">We're sending</a>
        <span class="divider" style="display: none;">|</span>
        <a class="toggler" href="#" title="change" style="display: none;">I've sent</a>
        <span class="divider" style="display: none;">|</span>
         <a class="toggler" href="#" title="change" style="display: none;">We've sent</a>
    </span>
    you a message with that information so let me know if you don't receive it.
</div>

我正在尝试只获取屏幕上可见的.toggler。我有一个按钮设置,所以当我点击它时,它会在控制台中记录句子进行测试。我开始时:

$(this).siblings(".post-content").find(':hidden').remove().end().text().replace(/\s+/g, " ")

哪个有效,直到我点击按钮后单击.toggler,但由于它们已被删除,因此无法显示。

所以我尝试过这样的事情:

console.log($(this).siblings(".post-content").find().not(':hidden').end().text().replace(/\s+/g, " ")) 

因为它返回null

为了增加并发症,他们也将visiblity:visible应用于所有这些因为它们处于弹出模块(基金会的揭示)并继承了风格,所以我无法做到

$(this).siblings(".post-content").not(':hidden').end().text().replace(/\s+/g, " ") 

因为它显示了一切。

如果它不是display:none那么我试图得到一些东西然后显示它。理想情况下,在这个例子中,我最终得到:

我们会向您发送包含该信息的消息,如果您没有收到,请告诉我。

Here's the fiddle使用原始代码行。

1 个答案:

答案 0 :(得分:0)

如果您为每个项目添加了一个名为“exclude”的类,然后在父div的子项上调用切换,该怎么办?

$( “内容后 ”)的儿童(“:否(.exclude)”)。切换();