jQuery noob:(this).replacewith 我做错了吗?

发布于 2024-10-18 12:50:09 字数 426 浏览 3 评论 0原文

我对 jQuery 的了解越来越多,但在这里我陷入了困境。

我有一个代码可以在单击复选框时更改 div 的颜色,效果很好。

之后我希望能够更改焦点文本区域的内容,我尝试了以下操作:

    //textarea
    $("textarea").focus(function(){
        if ($(this).contains('Skriv valg av headset her')){
         $(this).replaceWith('');
    });  

但没有效果。我是否有一些语法错误或者我采取了错误的方法?

jsFiddle 示例

I've been learning more and more about jQuery but here I've become stuck.

I have a code to change the color of a div when a checkbox is cliked, that works fine.

After this I want to be able to change the contents of a textarea on focus, I tried this:

    //textarea
    $("textarea").focus(function(){
        if ($(this).contains('Skriv valg av headset her')){
         $(this).replaceWith('');
    });  

But there is no effect. Do I have some syntax errors or am I taking the wrong approach?

jsFiddle example here.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

自此以后,行同陌路 2024-10-25 12:50:09

$.contains 函数和 :contains 选择器,但没有 jQuery.fn.contains 。您正在寻找 val 我相信:

$('textarea').focus(function(){
    var t = $(this);

    if(t.val().indexOf('Skriv valg av headset her') !== -1) {
        t.val('');
    }
});

replaceWith 在这里也是错误的 - if 可以工作(我不应该相信它,因为它需要 DOM 元素或 HTML 文本)它会删除 textarea 元素(无论如何,最好使用 remove 来完成)

There's the $.contains function and the :contains selector, but no jQuery.fn.contains. You're looking for val here I believe:

$('textarea').focus(function(){
    var t = $(this);

    if(t.val().indexOf('Skriv valg av headset her') !== -1) {
        t.val('');
    }
});

replaceWith is also wrong here - if that were to work (and it shouldn't I believe because it takes either a DOM element or a HTML text) it would remove the textarea element (which is better done with remove anyway)

随心而道 2024-10-25 12:50:09

试试这个:

//textarea
$("textarea").focus(function(){
    var $this = $(this); // Always cache your selector

    if ($this.contains('Skriv valg av headset her'))
    {
        $this.val('');
    }
}); 

Try this:

//textarea
$("textarea").focus(function(){
    var $this = $(this); // Always cache your selector

    if ($this.contains('Skriv valg av headset her'))
    {
        $this.val('');
    }
}); 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文