在js中根据操作当前数据获取id值进行url链接跳转,前端页面操作数据的时候只显示最新发布的id值,查看详情都是一样
最近做了一个需求
列表内有多个层级
要求可以实现每一级的列表项的上下移动
需要在点击下移一层时
将当前列表项平级向下移动一个位置
移动这部操作是后端实现的
前端需要在点击下移时获取当前项id和后面第一个兄弟节点的id
以下操作实现获取兄弟节点的id
直接上代码Demo:
<button>点击</button>
<script>
let _btn = document.querySelector('button')
const _list = [
{id:'1',parentId: null,level:1,name: '1a'},
{id:'2',parentId: null,level:1,name: '1b'},
{id:'3',parentId: null,level:1,name: '1c',children: [
{id:'01',parentId: '3',level:2,name: '2a'},
{id:'02',parentId: '3',level:2,name: '2b',children:[
{id:'001',parentId: '02',level:3,name: '3a'},
{id:'002',parentId: '02',level:3,name: '3b'},
{id:'003',parentId: '02',level:3,name: '3c'},
{id:'004',parentId: '02',level:3,name: '3d'},
{id:'005',parentId: '02',level:3,name: '3e'},
]},
{id:'03',parentId: '3',level:2,name: '2c'},
{id:'04',parentId: '3',level:2,name: '2d'},
]},
]
var _id = '003'
var nextId = null
_btn.onclick = function () {
var ParentId = getParentId(_list)
}
// 获取当前行信息
function getParentId(list) {
list.forEach((item,ind)=> {
// console.log(item.id, _id)
if (item.id === _id) {
console.log('======获取当前行信息:',list ,item)
// 处理当前列表
getNextId(list, item)
}
if (item.children) {
getParentId(item.children)
}
})
}
// 获取当前列表
function getNextId (_list2,_item2) {
_list2.forEach((item,ind)=> {
if (item.id === _id) {
console.log('当前index:',ind, ',当前id:', item.id)
console.log('下级index:',ind+1, ',下级id:', _list2[ind+1].id)
}
})
}
</script>
根据问题要求,在JavaScript中需要编写一个函数来获取最新发布的id值,并将其用作URL链接进行页面跳转。下面是解决问题的步骤:
首先,需要在前端页面上获取到当前操作的数据。这可以根据具体的业务需求来实现,比如从表单中获取用户输入的数据、从后台接口获取数据等。
接下来,需要找到最新发布的id值。可以使用数组对象的过滤方法来筛选满足条件的数据。参考资料中给出了一个例子,可以将其作为参考。
const arr = [
{ id: 10, name: '张三' },
{ id: 12, name: '李四' },
{ id: 3, name: '王五' },
{ id: 2, name: '赵六' },
{ id: 4, name: '孙七' }
]
const newArr = arr.filter(item => item.id > 5);
上述代码中,使用数组的filter方法对每个元素进行判断,如果满足条件(id大于5),则会被保留在新数组newArr中。
const latestId = newArr[newArr.length - 1].id;
window.location.href = 'http://example.com?id=' + latestId;
上述代码中,使用数组的length属性和下标来获取到最新发布的id,并将其拼接在URL中进行页面跳转。
综上所述,根据当前操作的数据,获取最新发布的id并用作URL链接进行页面跳转的JavaScript函数可以如下所示:
function goToLatestId() {
// 获取当前操作的数据,具体实现根据业务需求而定
const data = ...
// 过滤出最新发布的id值
const latestId = data.filter(item => item.id > 5)[0].id;
// 页面跳转
window.location.href = 'http://example.com?id=' + latestId;
}
请注意,上述代码中的部分内容需要根据具体业务情况来替换或修改,比如获取当前操作的数据和构建URL链接等。以上给出的代码仅供参考。
在 JavaScript 中,你可以根据当前操作的数据获取对应的 id 值,并使用该 id 值构建 URL 链接,然后通过 window.location.href
实现页面跳转。
假设你有一个包含数据的数组,每个数据对象都有一个唯一的 id 属性,你可以在前端页面操作数据时,获取最新发布的 id 值,并构建跳转链接。以下是一个示例代码:
<!DOCTYPE html>
<html>
<head>
<title>数据操作示例</title>
</head>
<body>
<!-- 假设数据数组 -->
<ul id="data-list">
<li data-id="1">数据1</li>
<li data-id="2">数据2</li>
<!-- ... 其他数据 ... -->
</ul>
<!-- 操作按钮,点击获取最新发布的 id 值并跳转 -->
<button id="goto-latest">跳转到最新发布</button>
<script>
// 获取数据列表元素
const dataList = document.getElementById('data-list');
// 获取跳转按钮元素
const gotoLatestBtn = document.getElementById('goto-latest');
// 点击按钮时,获取最新发布的 id 值并构建跳转链接
gotoLatestBtn.addEventListener('click', () => {
// 获取数据列表中的所有数据项
const dataItems = dataList.getElementsByTagName('li');
// 默认最新发布的 id 为 -1
let latestId = -1;
// 遍历所有数据项,找到最新发布的 id
for (const item of dataItems) {
const id = Number(item.getAttribute('data-id'));
if (id > latestId) {
latestId = id;
}
}
// 构建跳转链接,替换 YOUR_BASE_URL 和 YOUR_ROUTE_PATH 为实际的基础 URL 和路由路径
const baseURL = 'YOUR_BASE_URL';
const routePath = 'YOUR_ROUTE_PATH';
const url = `${baseURL}/${routePath}/${latestId}`;
// 执行页面跳转
window.location.href = url;
});
</script>
</body>
</html>
在上述示例中,通过点击 "跳转到最新发布" 按钮,会获取数据列表中最新发布的 id 值,并构建跳转链接。你需要将 YOUR_BASE_URL
和 YOUR_ROUTE_PATH
替换为你实际项目中的基础 URL 和路由路径。
注意:以上示例是一种简单的实现方式,实际应用中可能需要根据你的数据结构和前端框架进行适当的调整。
var url = window.location.href; // 获取当前页面的url
var id = url.split("?")[1].split("=")[1]; // 分割出id值
参考 https://blog.csdn.net/code_mzh/article/details/105496065