Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何按以$开头的类从父级中选择子级(此)_Javascript_Jquery - Fatal编程技术网

Javascript 如何按以$开头的类从父级中选择子级(此)

Javascript 如何按以$开头的类从父级中选择子级(此),javascript,jquery,Javascript,Jquery,我正在创建一个自定义jQuery插件,在输入框上方添加一些图像。highlight类工作得很好,但我需要.toggle()上的选择器的帮助,以显示和隐藏INPUTBANNER类 jQuery.fn.inputmenu = function() { function createInputMenu(node) { $(node).bind('focus', function() { $(this).parent().toggleClass('high

我正在创建一个自定义jQuery插件,在输入框上方添加一些图像。highlight类工作得很好,但我需要.toggle()上的选择器的帮助,以显示和隐藏INPUTBANNER类

jQuery.fn.inputmenu = function() {
    function createInputMenu(node) {
        $(node).bind('focus', function() {
            $(this).parent().toggleClass('highlight');

            //SHOW INPUTBANNER CLASS
            $(this).parent().('.inputbanner').toggle();
        });
        $(node).bind('blur', function() {
            $(this).parent().toggleClass('highlight');

            //HIDE INPUTBANNER CLASS
            $(this).parent().('.inputbanner').toggle();
        });
        $(node).parent().append('<div class="inputbanner">some images here</div>');
    }
    return this.each(function() {
        createInputMenu(this);
    });
};
jQuery.fn.inputmenu=函数(){
函数createInputMenu(节点){
$(节点).bind('focus',function(){
$(this.parent().toggleClass('highlight');
//显示输入横幅类
$(this.parent()。('.inputbanner').toggle();
});
$(节点).bind('blur',function(){
$(this.parent().toggleClass('highlight');
//隐藏INPUTBANNER类
$(this.parent()。('.inputbanner').toggle();
});
$(node.parent().append('some image here');
}
返回此值。每个(函数(){
createInputMenu(此菜单);
});
};

我想查看DOM/html标记的状态以进行测试,但请尝试以下操作:

jQuery.fn.inputmenu = function () {
    return this.each(function () {
        var $node = $(this);
        $node.parent().append('<div class="inputbanner" style="display:none">some images here</div>');
        var $nodeImageContainer = $node.parent().find('div.inputbanner').eq(0);
        $node.bind('focus', function () {
            //SHOW INPUTBANNER CLASS
            $nodeImageContainer.addClass('highlight').show();
        })
            .bind('blur', function () {
                //HIDE INPUTBANNER CLASS
                $nodeImageContainer.removeClass('highlight').hide();
            });
    });
};
jQuery.fn.inputmenu=函数(){
返回此。每个(函数(){
var$node=$(这个);
$node.parent().append('some image here');
var$nodeImageContainer=$node.parent().find('div.inputbanner').eq(0);
$node.bind('focus',function(){
//显示输入横幅类
$nodeImageContainer.addClass('highlight').show();
})
.bind('blur',函数(){
//隐藏INPUTBANNER类
$nodeImageContainer.removeClass('highlight').hide();
});
});
};

我想查看DOM/html标记的状态以进行测试,但请尝试以下操作:

jQuery.fn.inputmenu = function () {
    return this.each(function () {
        var $node = $(this);
        $node.parent().append('<div class="inputbanner" style="display:none">some images here</div>');
        var $nodeImageContainer = $node.parent().find('div.inputbanner').eq(0);
        $node.bind('focus', function () {
            //SHOW INPUTBANNER CLASS
            $nodeImageContainer.addClass('highlight').show();
        })
            .bind('blur', function () {
                //HIDE INPUTBANNER CLASS
                $nodeImageContainer.removeClass('highlight').hide();
            });
    });
};
jQuery.fn.inputmenu=函数(){
返回此。每个(函数(){
var$node=$(这个);
$node.parent().append('some image here');
var$nodeImageContainer=$node.parent().find('div.inputbanner').eq(0);
$node.bind('focus',function(){
//显示输入横幅类
$nodeImageContainer.addClass('highlight').show();
})
.bind('blur',函数(){
//隐藏INPUTBANNER类
$nodeImageContainer.removeClass('highlight').hide();
});
});
};

这似乎就是您所追求的,您不必返回到父级,然后再返回到.inputbanner来选择它,因为inputbanner是一个兄弟,您只需执行以下操作:

// use .prev() if the element is before
$(this).next('.inputbanner')
另外,作为补充说明,您应该像这样包装插件(这样就不会与$identifier发生冲突)


这似乎就是您所追求的,您不必返回到父级,然后再返回到.inputbanner来选择它,因为inputbanner是一个同级,您只需执行以下操作:

// use .prev() if the element is before
$(this).next('.inputbanner')
另外,作为补充说明,您应该像这样包装插件(这样就不会与$identifier发生冲突)


@pixeline:这个演示对我不起作用。。。公司阻止了一些javascript(包括jQuery)。。。不过我正在测试。@pixeline:这个演示对我不起作用。。。公司阻止了一些javascript(包括jQuery)。。。不过我正在测试这个。