javascript - 如何取消隐藏 html 标签

标签 javascript jquery html

我正在尝试检查 #textd 中的内容是否不为空并且包含超过 150 个字符。如果是这样,我会将其内容发送到另一个网页,如果不是,我会显示一条与上下文相关的错误消息。我正在使用这些代码执行此操作:

jsFiddle

HTML 代码:

  <a href="#" id="r"><span>AFD</span></a>

  <div class="ooo" hidden>
      <h4 id="titled">FOPJG?</h4>
  </div>
  <div>
       <p id="textd"></p>
  </div>

  <button id="submitd">Submit</button>
</div>

Javascript/jQuery 代码:

$("#r").click(function () {
    $(".ooo").prop("hidden", false);
});

$("#submitd").click(function () {
    if (!$("#textd").empty() && $("#textd").length() < 150) {
        var str = $("#textd").text();
        window.location.replace("foo?d="+str);
    } else {
        if (!$("#textd").empty() && $("#textd").length() > 150) {
            $("#titled").html("FOPJG?<small style='color:red;'>not under 150 chars.</small>");
        } else {
            $("#titled").html("FOPJG?<small style='color:red;'>ABVQS.</small>");
        }
    }
});

这里的问题是,当我单击提交按钮时,.ooo 不会显示。我还有另一个问题,相对于上述算法的描述,这个实现是否正确工作?

最佳答案

几件事:

  • 您应该使用 style="display:none;" 而不是 hidden 属性。只是更标准而已。此外,您应该使用外部样式表来代替所有样式,但这是另一场战斗。
  • 您的 if/else 逻辑有点错误:.empty() 会删除元素中的所有内容 - 它不会按照您期望的方式返回 true/false。请改用 .text().length
  • 您可能还想使用 return false;(或 e.preventDefault();),这样链接就不会转到任何地方。

所以,这里是:

HTML

<a href="#" id="r"><span>AFD</span></a>

<div class="ooo" style="display:none;">
    <h4 id="titled">FOPJG?</h4>
</div>
<div>
    <p id="textd">[ ... ]</p>
</div>

<button id="submitd">Submit</button>

jQuery

$("#r").click(function () {
    $(".ooo").show();
    return false;
});

$("#submitd").click(function () {
    if ($("#textd").text().length == 0) {
        $("#titled").html("FOPJG?<small style='color:red;'> It's Empty</small>");
    } else if ($("#textd").text().length < 150) {
        $("#titled").html("FOPJG?<small style='color:red;'> Length is under 150 chars.</small>");
    } else if ($("#textd").text().length) {
        $("#titled").html("FOPJG?<small style='color:red;'> Length is over or exactly 150 chars.</small>");
    }
    return false;
});

jsFiddle

关于javascript - 如何取消隐藏 html 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22924972/

相关文章:

javascript - R reactable _如何 chop 单元格内容并在悬停时显示?

javascript - 如何在 Angular 2 中的 JSON 字符串中添加附加项目?

javascript - 有没有办法使用ajax水平对齐动态卡?

javascript - 使用 jQuery 获取提交的表单值,有超过 1 个具有相同类名的表单

html - 单击 Bootstrap 4 navbar-toggler 使动画内容比屏幕宽

html - 非最后一个 child 应用 :last-child 定义的 CSS 样式

Javascript - 在新文档中显示浏览器详细信息

javascript - Node.js Promise - 代码不应该等到 .then 完成()吗?

javascript - 如何使用 jquery 一次只选择一个 LI 元素?

javascript - 我的图像无法正常工作