无法通过执行.attr()获得aria-pressed的当前值

问题描述 投票:1回答:1

我正在使用此引导程序切换:https://codepen.io/aanjulena/pen/ZLZjzV

基本上是在重新设置按钮的外观。每当该值处于“ on”状态时,aria-pressed属性为true,反之亦然。像这样:

<button id="packagesSwitch" type="button" class="btn btn-toggle my-3 pkgSwitch" data-toggle="button" aria-pressed="false" autocomplete="off">
                            <div class="handle"></div>
                        </button>

我正在尝试通过执行以下操作来获得此值:

$('.pkgSwitch').click(function(){

                if($(this).attr('aria-pressed')){
                    console.log("true");
                    $('#packageSwitchValue').val(1);
                }else{
                    console.log("false");
                    $('#packageSwitchValue').val(0);
                }
            });

但是它似乎根本不起作用。我意识到.attr给了我原始的价值,并且我尝试使用.prop()进行了某种尝试,但是我想不出一种方法,因为我没有尝试过。

jquery bootstrap-4 togglebutton
1个回答
0
投票

此处返回的属性值的类型为'字符串'-您可以使用typeof()进行检查。因此,它应该始终通过第一个条件,并且永远不要达到else。如果将if语句更改为添加=== 'true',则它应该起作用。

if($(this).attr('aria-pressed') === 'true'){
© www.soinside.com 2019 - 2024. All rights reserved.