当您尝试将属性初始设置为变量时,如何更改属性值:
<div class="random" aria-expanded="false">
...
</div>
// setting the attribute value to variable `getAttrValue`
var getAttrValue = $('.random').attr("aria-expanded");
if ( getAttrValue == "false" ) {
// try to set the aria-expanded to true
} else {
// try to set the aria-expanded to false
}
我可以这样做:
if ( getAttrValue == false ) {
$('.random').attr("aria-expanded", "true");
} else {
$('.random').attr("aria-expanded", "false");
}
但我试图看看我是否可以利用变量并缩短编码
答案 0 :(得分:1)
将$('.random')
存储为变量以避免重复的DOM查询。每次执行$('.random')
时,jQuery都会在DOM中搜索适合您的选择器的项目。相反,您可以一次并将其存储在变量中。它不仅缩短了你的代码,而且使它运行得更快。
因为您的属性将是字符串值,所以您需要进行字符串比较。
var $r = $(".random");
var getAttrValue = $r.attr("aria-expanded");
$r.attr("aria-expanded", getAttrValue=="false");
使用==
(Equality Operator),表达式getAttrValue=="false"
将评估为true
或false
。
答案 1 :(得分:0)
$('.random').attr("aria-expanded", getAttrValue == false);