首页 > 解决方案 > 从一个链接创建一个

问题描述

我试图让它工作,但我不知道如何从中获取值<span class="lsku"> value </span>并将其添加为 url 之后的后缀。例如 domain.com/link-value

function changespan() {
  var spans = document.querySelectorAll('span.lsku');
  for (var i = spans.length; i--;) {
    var a = document.createElement('a');
    a.href = $(".link2part").attr('href');
    spans[i].appendChild(a).appendChild(a.previousSibling);
  }
}

changespan();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="domain.com/link-" class="link2part"></a>

<div class="divTableBody">
  <div class="divTableRow">
    <div class="divTableCell"><span class="lsku">50</span></div>
    <div class="divTableCell">name 1</div>
    <div class="divTableCell"><span class="linkview">view</span>
    </div>
  </div>
</div>

<div class="divTableBody">
  <div class="divTableRow">
    <div class="divTableCell"><span class="lsku">60</span></div>
    <div class="divTableCell">name 2</div>
    <div class="divTableCell"><span class="lsku">view</span>
    </div>
  </div>
</div>

使用 JSFIDDLE.NET 查看

标签: javascriptjqueryhtml

解决方案


我假设您的示例有错字,并且在第二个 div 块中,第二个跨度应该具有类linkview而不是lsku. 如果是这样,那么以下将起作用。

$('span.linkview').html(function(i, h) {
  return $("<a/>", {
    html: h,
    href: 'domain.com/link-' + $(this).closest('div.divTableRow').find('span.lsku').text()
  })
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="domain.com/link-" class="link2part"></a>

<div class="divTableBody">
  <div class="divTableRow">
    <div class="divTableCell"><span class="lsku">50</span></div>
    <div class="divTableCell">name 1</div>
    <div class="divTableCell"><span class="linkview">view</span>
    </div>
  </div>
</div>

<div class="divTableBody">
  <div class="divTableRow">
    <div class="divTableCell"><span class="lsku">60</span></div>
    <div class="divTableCell">name 2</div>
    <div class="divTableCell"><span class="linkview">view</span>
    </div>
  </div>
</div>


推荐阅读