jQuery:通过变量更改属性值

时间:2017-06-30 20:01:08

标签: jquery

当您尝试将属性初始设置为变量时,如何更改属性值:

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

但我试图看看我是否可以利用变量并缩短编码

2 个答案:

答案 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"将评估为truefalse

答案 1 :(得分:0)

$('.random').attr("aria-expanded", getAttrValue == false);