Negator伪类无法正常工作

时间:2014-01-21 20:08:08

标签: jquery html css pseudo-class

我有以下代码。它应该是自我记录的。

        $('body:not(#name)').click(function () {
            if (document.getElementById('name').value === '') {
                document.getElementById('name').value = 'Anonymous';
            }
        });

否定者被忽略了。我做错了什么?


编辑:我尝试了所有提议的解决方案,但没有运气。可能是因为#name是输入文本字段?上下文中的代码,以及我最后一次使用.not()的痕迹:

 <form action="process-comment.php" method="POST"> <br/>
        Name: <input type"text" id="name" name="name" value="Anonymous"> <br/>
        E-mail: <input type"text" id="email" name="email" value="Secret"> <br/>
        Comment: <input type"textarea" id="comment" name="comment"> <br/>
        <input id="submitbutton" type="submit" value="Send">
    </form>

    <script>
        $(document).ready(function () {


            $('#name').click(function () {
                if (document.getElementById('name').value === 'Anonymous') {
                    document.getElementById('name').value = '';
                }
            });

            $('#email').click(function () {
                if (document.getElementById('email').value === 'Secret') {
                    document.getElementById('email').value = '';
                }
            });

            $('body').not('#name').click(function () {
                if (document.getElementById('name').value === '') {
                    document.getElementById('name').value = 'Anonymous';
                }
            });

            $('body').not('#email').click(function () {
                if (document.getElementById('email').value === '') {
                    document.getElementById('email').value = 'Secret';
                }
            });

我希望文本区域显示“匿名”和“秘密”,直到它们被单击。当用户点击其他地方,并且值为“”,表示没有输入任何内容时,我希望“Anonymous”和“Secret”返回。此时,字段已清空,但在单击时立即填充。

3 个答案:

答案 0 :(得分:0)

您的选择器错误,应该是:

 $('body :not(#name)')

或更好:

$('body').find(':not(#name)')

答案 1 :(得分:0)

检查下一个代码。

$('body').click(function () {
    if ($(this).find('#name').val() === '') {
        $(this).find('#name').val('Anonymous');
    }
});

答案 2 :(得分:0)

Jquery有2个选择器,你可以选择

<强> :not
    $( '体:否(#NAME)')。等...

<强> .not
    $( '主体')。不( '#名称')。等...