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());
}
});
}