我正在开发的网站需要有动态标签,例如:
如果网页列出了一本特定书籍的作者(有多个作者),它将如下所示:
Author 1: Nikola Tesla [Remove]
Author 2: Elon Musk [Remove]
Author 3: Alan Turing [Remove]
(请注意,本例中的 [Remove]
是一个删除特定人员作为作者的按钮。)
我的问题是这样的,假设我删除了埃隆·马斯克作为作者的身份,图灵的标签现在应该更改以反射(reflect)这一点(将变为 Author 2
)。
我已经使用客户端 JavaScript 尝试了几种不同的方法(因为该解决方案需要在不刷新页面或任何回发的情况下工作),但我自己无法接近工作解决方案,我的逻辑似乎已关闭或由于我缺乏 Web 开发经验。我根本没有做过太多 Web 开发,所以我确实在边学习边学习。该解决方案还需要在用户向书中添加新作者的情况下起作用。
编辑:作者不存储在表中,而只是使用标签列出。这(由于我无法控制的事情)无法更改。
编辑 2:这是我认为相关的代码,如果需要其他内容,请告诉我。
<div ID='dvAuthor" + i.ToString + "' class='form-group'><div class='col-sm-4 control-label'>
一个额外的变化是,它位于服务器端,当添加作者时,它会替换占位符(这意味着当添加作者时,页面会刷新 - 这很好,但删除不应该要求相同) 。更有趣的是我们没有使用 JQuery!
i.ToString
只是添加一个整数,以便对作者的 ID 进行编号,例如 dvAuthor0
等等。
编辑3:回复@Basic
好的,这让事情变得更清晰了。 div
因为作者的标签来自服务器(即每次添加作者时,页面都会刷新,并且客户端现在向他们呈现新添加的作者。)所以我想我的问题是,我将如何循环遍历客户,或者更好的是我可以循环浏览每个作者的 div
如果我不知道页面上到底有多少位作者,只需获取他们的 ID 即可?会不会是这样的while(hasNextAuthor) {add author ID to array}
很抱歉提出所有问题,我对 Web 开发的东西真的很陌生,我正在尽力而为。
此外,我不需要担心从网页中删除作者,我已经有一个函数可以做到这一点(在客户端和服务器上)。编号是唯一需要完成的事情,它实际上只是装饰性的,当前的编号系统工作正常,但不会在用户删除作者时动态更改编号,而是等到用户选择保存然后重新加载页面具有正确的编号。
编辑4:我想我有办法可以完成这件事,我只需挂断一下...我如何从客户端获取网页上的作者数量?这是 JavaScript 中的一种方式,我可以循环查看有多少个 div
是为网页创建的吗?
最佳答案
有一些库可以通过 JavaScript 进行模板化。淘汰赛是一个很好的选择,您可以在这里了解更多信息: http://knockoutjs.com/documentation/template-binding.html ...并在这里查看一个很好的例子: https://www.devbridge.com/articles/knockout-a-real-world-example/
使用 Knockout,您基本上可以创建一个客户端 ViewModel 和一个可观察的作者数组。然后可以将它们绑定(bind)到模板 HTML UI,该模板与 ViewModel 交互,直到需要将其保存回来。
使用该库应该不用担心重新绑定(bind)。
关于javascript - ASP.NET/javascript 中的动态标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30176675/