gpt4 book ai didi

javascript - 使用 jQuery 遍历列表

转载 作者:太空狗 更新时间:2023-10-29 14:20:38 25 4
gpt4 key购买 nike

我有一个项目列表,我想从任何方向从任何点遍历这些项目。我还想循环列表,这意味着如果我结束了最后一个列表项并单击下一步,我希望下一个项目成为列表中的第一个项目。我的页面很简单,只有 5 个项目的无序列表、2 个按钮(一个用于上一个,一个用于下一个)和一个显示结果的文本区域。这是我的代码:

$(function() {
var prev = $("#prev"); // grabbing the prev button
var next = $("#next"); // grabbing the next button
var listItems = $("#listItems p"); // grabbing the p elements of the list items
var results = $("#results"); // grabbing the textarea
var itemText; // variable for holding the text node
var selectedItem; // variable for the current selected item

listItems.click(function() { // click event for any item
itemText = $(this).text(); // selects the text of the clicked list item
results.text(itemText); // adds text to textarea
selectedItem = $(this).parent(); // sets selected item as the li element of the selected p element
});

next.click(function() { // click event for next button
var nextItem = selectedItem.next(); // setting the next item
itemText = nextItem.children("p").text(); // grabbing the text of the next item
results.text(itemText); // adds text to textarea
selectedItem = nextItem; // sets next item
});

prev.click(function() { // click event for the prev button
var prevItem = selectedItem.prev(); // setting the prev item
itemText = prevItem.children("p").text(); // grabbing the text of the prev item
results.text(itemText); // adds text to textarea
selectedItem = prevItem; // sets prev item
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<ul id="listItems">
<li><p>First item</p></li>
<li><p>Item 2</p></li>
<li><p>Item 3</p></li>
<li><p>Item 4</p></li>
<li><p>Last item</p></li>
</ul>
<button id="prev">Prev</button>
<textarea name="results" id="results" cols="30" rows="1"></textarea>
<button id="next">Next</button>

当我点击或接近最后一个项目时,按下一个按钮会清除文本区域并使两个按钮都无响应。从逻辑上讲,我知道需要有一个 if 语句来说明如果当前项是最后一项,那么下一项必须是第一项。我只是不知道如何编码。这是 jsfiddle:

jsfiddle

最佳答案

在您的代码之上构建,您可以检查当前元素是最后一个元素还是第一个元素,并设置如下条件:

next.click (function () { // click event for next button
var nextItem = '';
if(selectedItem.index() == listItems.length -1 ){//if the last element
nextItem == listItems[0];
}else{
nextItem = selectedItem.next(); // setting the next item
itemText = nextItem.children("p").text(); // grabbing the text of the next item
results.text(itemText); // adds text to textarea
selectedItem = nextItem; // sets next item
}
});

prev.click (function () { // click event for the prev button
var prevItem = '';
if(selectedItem.index() == 0 ){//if the first element
prevItem == listItems[listItems.length-1]
}else{
prevItem = selectedItem.prev(); // setting the prev item
itemText = prevItem.children("p").text(); // grabbing the text of the prev item
results.text(itemText); // adds text to textarea
selectedItem = prevItem; // sets prev item
}
});

关于javascript - 使用 jQuery 遍历列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30135734/

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