我正在尝试具有可以单击“让它成为我的商店”链接的功能,它会根据 id 保存 li 的内容,并将 li 的内容拉到另一个页面上。
这段代码:
<li><xsl:attribute name="id">store-<xsl:value-of select="@id"/></xsl:attribute></li>
输出到
<li id="store-1075"></li>
由“@id”表示的数字 1075 会根据每个商店位置而变化,并且有多个位置。
本节中的 li 自动生成添加到后端的任何商店位置。因此,在前端,它当前显示了多个列表项存储位置。
<ul id="storeList">
<xsl:for-each select="$currentPage/* [@isDoc]">
<xsl:sort select="@nodeName" order="ascending" />
<li>
<xsl:attribute name="id">store-<xsl:value-of select="@id"/></xsl:attribute>
<a href="{umbraco.library:NiceUrl(@id)}">
<img class="location-image" alt="">
<xsl:attribute name="src">
<xsl:value-of select="storeImage"/>
</xsl:attribute>
</img>
</a>
<a href="{umbraco.library:NiceUrl(@id)}">
<xsl:value-of select="location"/>
</a>
<p><xsl:value-of select="./address"/></p>
<p><xsl:value-of select="./addressCity"/></p>
<div class="makeMyStoreWrapper"><a class="makeMyStore" href="#"><xsl:attribute name="id">store-<xsl:value-of select="@id"/></xsl:attribute>MAKE IT MY STORE</a></div>
</li>
</xsl:for-each>
</ul>
现在我已经设置好在使用 localStorage.setItem 单击时保存 ul id="storeList" 的状态。然后,只要#storeList 的 id 出现在代码中,它就会提取保存到 localStorage 的任何值,如下所示:
$(function() {
var save = $('#storeList').get(0);
$(save).click(function() {
localStorage.setItem('saved', this.innerHTML);
});
if ( localStorage.getItem('saved') ) {
save.innerHTML = localStorage.getItem('saved');
}
显然这不是我想要的。相反,我希望它保存每个 li 点击的内容。我希望代码是这样的:
var id = any of the store ids or the specific ids, whatever works better.
var save = document.getElementById('store'+id);
或者 var id 可能等于所有可能的商店 id 编号的数组。
主要目的是一个商店定位器页面,您可以在其中单击一个或多个商店并将它们保存到您的“我的商店”页面。我几乎让它工作了,但我碰壁了。任何帮助都会很棒,如果有什么需要澄清的,请告诉我。我从不使用 ASP,所以这对我来说很棘手,这是我第一次从头开始做任何 jQuery 或 javascript。我最初尝试将它与 cookie 一起使用,但由于没有用户登录,我决定改用 localStorage。