gpt4 book ai didi

javascript - jQuery:检查/取消检查 DOM 元素

转载 作者:行者123 更新时间:2023-12-03 05:22:10 25 4
gpt4 key购买 nike

我有以下脚本,可以通过 Rails 中的 AJAX 执行:

看来只有第一个指定的选项(取消选中)有效,else 语句内的部分不起作用!

<% if params[:type] == "switch" %>
var obj = $('.<%= params[:name] %> a:not(.label) #myonoffswitch:checkbox');
<% if params[params[:name]] %>
obj.prop('checked', false);
<% else %>
obj.prop('checked', true);
<% end %>
<% elsif params[:type] == "checkbox" %>
<% if params[params[:name]] %>
$('.<%= params[:name] %> a:not(.label)').remove();
$('.<%= params[:name] %>').prepend("<a data-remote='true' href='/update?name=<%= params[:name] %>&amp;<%= params[:name] %>=true&amp;type=checkbox'><i class='icon ion-android-checkbox-outline-blank' tabindex='0'></i></a>");
$('.<%= params[:name] %> a:not(.label) i').focus();
<% else %>
$('.<%= params[:name] %> a:not(.label)').remove();
$('.<%= params[:name] %>').prepend("<a data-remote='true' href='/update?name=<%= params[:name] %>&amp;<%= params[:name] %>=false&amp;type=checkbox'><i class='icon ion-android-checkbox' tabindex='0'></i></a>");
$('.<%= params[:name] %> a:not(.label) i').focus();
<% end %>
<% end %>

DOM

      <div class="name flex">
<a data-remote="true" href="/update?name=name&amp;name=false&amp;type=switch"><div class="onoffswitch">
<input checked="" class="onoffswitch-checkbox" id="myonoffswitch" name="onoffswitch" type="checkbox">
<label class="onoffswitch-label" for="myonoffswitch"></label>
</div>
</a>
<div class="label">
<a class="abc label" data-remote="true" href="/update?name=name&amp;name=false&amp;type=switch">ABC
</a>
<p class="abc labeltext">Lorem ipsum.</p>
</div>
</div>

<div class="name1 flex"><a data-remote="true" href="/update?name=name1&amp;name1=true&amp;type=checkbox">
<i class="icon ion-android-checkbox-outline-blank" tabindex="0"></i></a>

<div class="label">
<a class="abc label" data-remote="true" href="/update?name=name1&amp;name1=false&amp;type=checkbox">ABC
</a>
<p class="abc labeltext">Lorem ipsum.</p>
</div>
</div>

但是,我注意到,只有选中复选框或开关时,它才会被取消选中,并且如果未选中它,则不会更改其外观(DOM)。

我做错了什么?

最佳答案

您需要删除 :checked selector 。截至目前,您仅获得选中复选框

使用

var obj = $('.<%= params[:name] %> a:not(.label) #myonoffswitch:checkbox');

而不是

var obj = $('.<%= params[:name] %> a:not(.label) #myonoffswitch:checkbox:checked');

关于javascript - jQuery:检查/取消检查 DOM 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41330460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com