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