You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用jQuery为列表项包裹<a>标签并设置动态href的语法问题排查

问题原因与修复方案

问题根源

你的jQuery代码里,wrapInner('<a></a>')执行后返回的对象仍然是原<li>元素,所以后续链式调用的.attr("href", ...)会把属性加到<li>上,而非包裹内容的<a>标签。

修复方案

有两种简洁的修正方式:

方式一:先包裹再定位<a>标签添加属性

先完成内容包裹,再通过.find('a')找到内部的<a>元素,给它设置href:

$('.menu ul li').each(function(i, e){
  $(this).wrapInner('<a></a>').find('a').attr("href", "#slide-" + i);
});

方式二:包裹时直接构建带href的<a>标签

在wrapInner的参数里直接生成包含动态href的<a>标签,一步到位:

$('.menu ul li').each(function(i, e){
  $(this).wrapInner(`<a href="#slide-${i}"></a>`);
});

修正后输出

执行上述任一代码后,正确的HTML结构会是:

<li>
  <a href="#slide-0">Child 1</a>
</li>

内容的提问来源于stack exchange,提问作者DeanH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 09:48:13