【问题标题】:Can I call ID Element HTML from variabel in jquery [duplicate]我可以从 jquery 中的变量调用 ID Element HTML [重复]
【发布时间】:2018-03-08 15:23:42
【问题描述】:

我有一些来自 JSON ARRAY 的值。值为Value1,Value2,Value3 我在 HTML 中有一个复选框,其 ID 与值相同。

我想自动检查具有 JSON 数组值的 checkbox

我试图用下面的代码做到这一点:

var OtherPay = response.OtherPay;
var benefit = OtherPay.split(",");
var sum = benefit.length;

for (var i = 0; i < sum; i++) {      
    $('#'+benefit[i]).attr('checked',true);
}

【问题讨论】:

  • 你的代码会发生什么?
  • 请给我们看一下 HTML
  • 好的,但究竟是什么不起作用?要检查复选框,请使用 $('#'+benefit[i]).prop('checked', true)
  • 我的复选框没有选中@kevinSpaceyIsKeyserSöze
  • @bramadwitra 试试我的编辑

标签: javascript jquery html json checkbox


【解决方案1】:

如果每个复选框元素都有一个具有该值的 id 属性,这应该可以工作,但我认为你应该使用

$('#' + benefit[i]).prop('checked', true);

如果您使用的是最新的 jQuery 版本

【讨论】:

  • 为什么prop 会起作用?元素是否有 id 有什么关系?
  • prop是 jQuery 库用来修改 jQuery 对象属性的方法 api.jquery.com/prop id 要求是因为您使用的选择器使用了 #。这意味着您使用该 id 查询文档中的元素。您应该使用 CSS 选择器定义检查它w3schools.com/cssref/css_selectors.asp
  • 我的意思是,如果答案包括一些解释,而不仅仅是“这样做”,那就太好了。 - 我理解的方式是属性是由 DOM 定义的,与 HTML 定义的属性不同。并非所有属性都具有到属性的 1 对 1 映射。 Checked=checked 是属性,当使用 attr 时发生了变化,但是,它映射到 defaultChecked 属性而不是 checked 属性。要更改这一点,您需要使用 prop 来代替 checked 属性。经验法则,使用prop 明确定位属性。
【解决方案2】:

尝试使用

$('#'+benefit[i]).prop('checked',true);

如这里所说: Setting "checked" for a checkbox with jQuery?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    • 2014-10-27
    • 2016-11-30
    相关资源
    最近更新 更多