默认情况下使用 jQuery 检查单选按钮

Check a radio button by default with jQuery

在我用来显示文本片段的 html 页面中,我使用 jQuery 过滤那些仅包含文本、包含一些 url 链接或两者的文本:

JS代码:

$(document).ready(function() {
  $('input[type=radio]').attr('checked', false);
  $(".selection").on("change", ":radio", function() {
    var checkedVal = parseInt($(this).filter(":checked").val(), 10);
    $(".container").hide().filter(function() {
      if (checkedVal === 2) {
        return $(this).find('a[href]').length && $(this)
      } else if (checkedVal === 1) {
        return $(this).find('a[href]').length <= 0 && $(this)
      } else {
        return $(this)
      }
    }).show();
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="selection">
  </button> Display : <input type="radio" name="check" value="1" /> Texts only | <input type="radio" name="check" value="2" /> Texts w/ links | <input type="radio" name="check" value="-1" checked="checked" /> Texts + Texts w/ links</div>

我希望默认选中“文本 + 带链接的文本”按钮,并在刷新页面时保留此选项。

我不知道该怎么做。任何帮助将不胜感激,谢谢。

不要取消选中所有按钮,而是选中您希望成为默认按钮的按钮。

$(document).ready(function() {
  $('.selection :radio[value=-1]').attr('checked', true);
  $(".selection").on("change", ":radio", function() {
    var checkedVal = parseInt($(".selection :radio:checked").val(), 10);
    $(".container").hide().filter(function() {
      if (checkedVal === 2) {
        return $(this).find('a[href]').length && $(this)
      } else if (checkedVal === 1) {
        return $(this).find('a[href]').length <= 0 && $(this)
      } else {
        return $(this)
      }
    }).show();
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="selection">
  </button> Display : <input type="radio" name="check" value="1" /> Texts only | <input type="radio" name="check" value="2" /> Texts w/ links | <input type="radio" name="check" value="-1" checked="checked" /> Texts + Texts w/ links</div>