【问题标题】:Select blank TextArea with value='' selector选择带有 value='' 选择器的空白 TextArea
【发布时间】:2019-08-20 00:31:44
【问题描述】:

在继续执行特定流程之前,我需要填写一个文本区域。

对于普通文本框,我可以通过在选择字符串中添加属性选择器 [value=''] 来检索所有空白输入。

当我对文本区域执行此操作时,它不起作用。

如果我在 IE 中而不是在严格模式下,它确实可以工作,但我不是我想做的事情。

如果我首先选择所有文本区域,然后使用 [value=''] 作为选择器执行过滤器调用,它确实可以工作。

这是设计使然吗?从文本区域实际上没有值属性的角度来看,这是有道理的,但我猜过滤器调用不起作用。

这是一个示例代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
    <SCRIPT SRC="jquery-1.4.2.min.js"></SCRIPT>

    <SCRIPT>
        $(function () {
            var Rslt1 = $("textarea[value='']").size(); 
            var Rslt2 = $("textarea").filter("[value='']").size();
            alert(Rslt1 + ' ' + Rslt2);
        })
    </SCRIPT>
</HEAD>
<BODY>
    <TEXTAREA></TEXTAREA>
</BODY>
</HTML>

在 IE 8、Chrome 4 和 Firefox 3.6 中,结果为 0 1,如上所述。

【问题讨论】:

标签: jquery


【解决方案1】:

Textarea 没有“值”属性。试试$("textarea:empty")

更新以展示它如何与 jQuery(OP 的问题)、vanilla JS 和 CSS 一起使用。

document.querySelector('textarea:empty').style.width = "300px"

$("textarea:empty").css("background", "blue")
textarea:empty {
  border: 3px solid red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea id="empty"></textarea>
<textarea id="notempty">foo</textarea>

【讨论】:

  • 你试过使用 $("textarea:not(:empty)") 吗?我用它来获取非空的textarea,但即使textarea已经填满,结果也总是空的。
  • @Praditha,$("textarea").not(":empty") 怎么样?没试过,但我发现函数有时比选择器更可靠。
  • 此解决方案不适用于 textarea!来自文档:“:empty 选择器匹配每个没有子元素(包括文本节点)的元素。”
猜你喜欢
  • 2019-10-04
  • 1970-01-01
  • 2015-10-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-04
  • 1970-01-01
  • 2010-11-16
相关资源
最近更新 更多