Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 css(';display';)只返回内联_Javascript_Jquery_Css - Fatal编程技术网

Javascript css(';display';)只返回内联

Javascript css(';display';)只返回内联,javascript,jquery,css,Javascript,Jquery,Css,我试图从设置为内联的表中获取选中选项。有一个搜索函数,它在与搜索不匹配的对象上设置$(element).css('display','none')。无论如何,这段代码将只返回内联,无论元素设置为什么。即使我在表中手动将它们全部设置为display:none,对于表中的每个对象,警报都将返回inline。有什么解决办法吗 JS代码: function pass_QR() { var i = 0; var array = []; $("input:checkbox:check

我试图从设置为
内联的表中获取选中选项。有一个搜索函数,它在与搜索不匹配的对象上设置
$(element).css('display','none')
。无论如何,这段代码将只返回
内联
,无论元素设置为什么。即使我在表中手动将它们全部设置为
display:none
,对于表中的每个对象,警报都将返回
inline
。有什么解决办法吗

JS代码:

function pass_QR() {
    var i = 0;
    var array = [];
    $("input:checkbox:checked").each(function () {
        i++;
        alert($(this).css('display'));
        if ($(this).val() !== 0 && $(this).css('display') === 'inline') {
            array.push($(this).val());
        }
    });
}
请尝试以下操作:

$("input:checkbox:checked").each(function(i,o){       
      console.log($(this).css("display"));       
});
在这里使用小提琴:

基本上,
css(“display”)
确实起作用,所以还有一些事情正在发生

我怀疑有两件事:

  • 您正在创建的
    复选框显示:none
    从未选中
    ,因此您在
    每个
    循环中都看不到它们

  • 您不是让复选框
    显示:none
    ,而是对它们的某个祖先元素执行该操作。在这种情况下,
    $(this).is(“:visible”)
    就是您要查找的内容

  • 这里有一个例子#2:|

    旁注:每次调用
    $()
    ,jQuery都必须做一些工作。当您发现自己在同一范围内重复调用它时,最好只执行一次:

    功能传递\u QR(){
    var i=0;
    var数组=[];
    $(“输入:复选框:选中”)。每个(函数(){
    
    var$this=$(this);//对我有效:我猜您设置为
    display:none
    的那些也没有被选中。使用
    $(“输入:选中:可见”)不是更简单吗.每个
    ?@kayen:那么
    i
    将有一个不同的值。无论复选框是否可见,它都会递增。谢谢你纠正我…再次检查。我想这就是你要找的。我希望它会有所帮助。现在它又回到了“适合我”的状态-风格不回答。你想帮忙很好,但坦率地说,这没有帮助。
    <div id="ancestor">
    <input type="checkbox" checked>
    </div>
    <script>
    $("#ancestor").css("display", "none");
    console.log("display property is now: " +
        $("input:checkbox:checked").css("display"));
    console.log("visible tells us what's going on: " +
        $("input:checkbox:checked").is(":visible"));
    </script>
    
    display property is now: inline-block visible tells us what's going on: false
    function pass_QR() {
        var i = 0;
        var array = [];
        $("input:checkbox:checked").each(function () {
            i++;
            alert($(this).css('display'));
            if ($(this).val() !== 0 && $(this).is(':visible')) {
            // Change is here -----------------^^^^^^^^^^^^^^
                array.push($(this).val());
            }
        });
    }
    
    function pass_QR() {
        var i = 0;
        var array = [];
        $("input:checkbox:checked").each(function () {
            var $this = $(this); // <=== Once
            i++;
            alert($this.css('display'));
            if ($this.val() !== 0 && $this.is(':visible')) {
            // Other change is here -------^^^^^^^^^^^^^^
                array.push($this.val());
            }
        });
    }