繁体   English   中英

jQuery this()用于textarea吗?

[英]jQuery this() for textarea?

嘿! 另一个小问题(这不是jQuery中的错误吗?)。

我有一个这样的文本区域:

<textarea>Something</textarea>

我想在点击后删除“东西”,所以:

$("textarea").click(function() {
     $(this).text("");
});

好的,到目前为止。 仅当我的文本区域中存在“某些内容”时,才想更改“某些内容”文本时出现问题:

$("textarea").click(
function() {
    if ($(this).text() === "Something") {
        $(this).text("");
        }
});

它对所有不同的输入都起作用,但不适用于文本区域。 而且它在没有“ if”循环的情况下效果很好,那么这是怎么回事? :)

非常感谢!

编辑

好的,这是我的“真实代码”:

$(".inp").click(
function(){
    if($(this).val() === "Text" || $(this).val() === "Name" || $(this).val() === "Mail" || $(this).val() === "Site" ) {
        $(this).val(""); 
    }
});

HTML:

<form>
<fieldset>
<input type="text" name="name" class="inp" value="Name" /> <br />
<input type="text" name="email" class="inp" value="Mail" /> <br />                             <input type="text" name="site" class="inp" value="Site" />  
<textarea rows="12" name="text" class="inp">Text </textarea>
</div>     

它适用于除文本区域之外的所有输入。

使用.val("")代替.text("")

如果要使用JavaScript操纵textareas内容,请使用value属性...节点内容仅用于HTML表示形式。

您确定文本区域内没有任何空格(或换行符)吗? 像这样的东西:

<textarea>
Something
</textarea>

如果是这种情况,您可以将.trim()附加到$(this).text()这将删除前导和尾随空格。

我已经创建了上面的示例 ,并且可以正常工作。 别的东西:我会建议使用.focus()代替.click ,所以如果用户使用键盘导航它仍然有效。 这是.focus()的示例

在“文本”之后和“”之前有空白。 $(this).val()适用于textareas,但是textarea中的文本是“ Text”,而不是“ Text”。

JSFiddle示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM