gpt4 book ai didi

javascript - jQuery 单击外部元素可向上或向下移动包含选中复选框的无序列表项

转载 作者:行者123 更新时间:2023-11-28 07:38:19 24 4
gpt4 key购买 nike

我需要一个“上移”按钮和一个“下移”按钮,用于将列表项(包含选中的复选框)在列表中向上移动 1 个位置或向下移动 1 个位置,具体取决于他们单击的按钮。我看过几篇处理类似情况的帖子,但似乎没有一个能完全满足我的需要。我想坚持使用主要的 jquery.js 文件。

                <ul id="theList">
<li>
<label>
<span><input type="checkbox" name="CheckboxGroup1" value="checkbox" id="CheckboxGroup1_0" />Checkbox 1</span></label>
</li>
<li>
<label>
<span><input type="checkbox" name="CheckboxGroup1" value="checkbox" id="CheckboxGroup1_1" />Checkbox 2</span></label>
</li>
<li>
<label>
<span><input type="checkbox" name="CheckboxGroup1" value="checkbox" id="CheckboxGroup1_2" />Checkbox 3</span></label>
</li>
</ul>
<a href="#" id="moveUp">Move Up</a>
<a href="#" id="moveDown">Move Down</a>

jQuery 代码:

$('#moveUp').click(function() {
return !$('#theList li :checked').closest('li').insertBefore(this.prev());
});

$('#moveDown').click(function() {
return !$('#theList li :checked').closest('li').insertAfter(this.next());
});

最佳答案

您可以使用以下内容:

Example Here

$('#moveUp').click(function() {
var $checkedElement = $('#theList li :checked');
$checkedElement.closest('li').insertBefore($checkedElement.closest('li').prev());
});

$('#moveDown').click(function() {
var $checkedElement = $('#theList li :checked');
$checkedElement.closest('li').insertAfter($checkedElement.closest('li').next());
});

一些注意事项..

  • 您在非 jQuery 对象 this.prev()/this.next() 上使用了 jQuery 方法。它应该是 $(this).prev()/$(this).next()

  • 当前作用域中的
  • $(this) 引用向上/向下元素。您不想根据向上/向下按钮索引更改复选框元素的位置。您需要更改相对于复选框元素的位置,因此您可以使用类似 $checkedElement.closest('li').prev()

如果您希望在移动多个复选框元素时起作用,您可以使用:

Example Here

$('#moveUp').click(function() {
var $checkedElement = $('#theList li :checked');
$checkedElement.each(function () {
$(this).closest('li').insertBefore($(this).closest('li').prev());
});
});

$('#moveDown').click(function() {
var $checkedElement = $('#theList li :checked');
$($checkedElement.get().reverse()).each(function () {
$(this).closest('li').insertAfter($(this).closest('li').next());
});
});

关于javascript - jQuery 单击外部元素可向上或向下移动包含选中复选框的无序列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28334664/

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