Javascript:为变量添加新属性

Javascript: Add new attribute to a variable

本文关键字:属性 新属性 添加 变量 Javascript      更新时间:2023-09-26

HTML

<div id = "btnsdhd" class="btn-group">
    <button type="button" id="31" value="SD" class="btn btn-default">SD</button>
    <button type="button" id="32" value="HD" class="btn btn-default">HD</button>
</div>

JS-

var btnsdhdDiv = $('#btnsdhd');
var getsdhd = function () {
  // Get all sdhd's from buttons with .active class
  var sdhd = $('button.active', btnsdhdDiv).map(function () {
    return $(this).val();
  }).get();
  // If no sdhd's found, get sdhd's from any button.
  if (!sdhd || sdhd.length <= 0) {
    sdhd = $('button', btnsdhdDiv).map(function () {
        return $(this).val();
    }).get();   
  }
  return sdhd;
};

上面的代码捕获按钮的值,并将其放入变量getsdhd

如果默认情况下没有选择任何按钮,它会捕获两个值(SD,HD)。当没有选择按钮时,我想修改if语句并向变量添加第三个值NC我希望它看起来像(SD,HD,NC)当没有选择按钮。我试着使用.push()方法,但没有成功。任何线索都会有所帮助。

push((在您的情况下不能被链接,因为push返回的是新的长度,而不是更新后的数组。您需要将其添加到get((下面。

var btnsdhdDiv = $('#btnsdhd');
var getsdhd = function () {
  // Get all sdhd's from buttons with .active class
  var sdhd = $('button.active', btnsdhdDiv).map(function () {
    return $(this).val();
  }).get();
  // If no sdhd's found, get sdhd's from any button.
  if (!sdhd || sdhd.length <= 0) {
    sdhd = $('button', btnsdhdDiv).map(function () {
        return $(this).val();
    }).get()
    sdhd.push("NC");   
  }
  return sdhd;
};
console.log(getsdhd());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id = "btnsdhd" class="btn-group">
    <button type="button" id="31" value="SD" class="btn btn-default">SD</button>
    <button type="button" id="32" value="HD" class="btn btn-default">HD</button>
</div>

您没有调用getsdhs函数。如果您调用您的函数,它就会工作。我使用console.log来测试它是否有效。

JS

var btnsdhdDiv = $('#btnsdhd');
var getsdhd = function () {
  // Get all sdhd's from buttons with .active class
  var sdhd = $('button.active', btnsdhdDiv).map(function () {
    return $(this).val();
  }).get();
  // If no sdhd's found, get sdhd's from any button.
  if (!sdhd || sdhd.length <= 0) {
    sdhd = $('button', btnsdhdDiv).map(function () {
        return $(this).val();
    }).get();
    sdhd.push("NC");
  }
  console.log(sdhd);
  return sdhd;
}();

Fiddle:https://jsfiddle.net/ABr/p23cb5dk/1/