jQuery,从列表中获取每个值并用<a href=“same value”>包装
jQuery, get each value from a list and wrap it with <a href="same value">
我有四个列表
<li class='lists'>http://google.com</li>
<li class='lists'>http://facebook.com</li>
<li class='lists'>http://twitter.com</li>
<li class='lists'>http://youtube.com</li>
我想用列表中值中的值href=
在此列表的值周围包装一个a
标签。
我试图实现的最终结果是:
<li class='lists'><a href="http://google.com">http://google.com</a></li>
<li class='lists'><a href="http://facebook.com">http://facebook.com</a></li>
<li class='lists'><a href="http://twitter.com">http://twitter.com</a></li>
<li class='lists'><a href="http://youtube.com">http://youtube.com</a></li>
到目前为止,我用jQuery做了
$('li.lists').wrapInner('<a class="links"> </a>');
它用a
标签将内容包装在li
内,但我在如何将链接放入a
字段中的逻辑上有点不足。
我试过
$.each($('.links'), function() {
$('.links').attr({'href':$(this).text()});
})
但是这会将所有链接更改为最后一个链接http://youtube.com
,正如您在 JSFiddle 中看到的那样
您可以继续使用 wrapInner。只需使用以下语法:
$('li.lists').wrapInner(function () {
return "<a href='" + $(this).text() + "'></a>";
});
js小提琴示例
你和上一个例子很接近了。试试这个:
$('.lists').each(function() {
var href = $(this).text();
$(this).html($('<a>').attr('href', href).text(href));
});
js小提琴
尝试
$('li.lists').html(function (_, old_html) {
return '<a href="' + old_html + '">' + old_html + '</a>';
});
小提琴演示
.html()
正如这篇jQuery文章所提到的,$.each用于非JQuery对象,而.each()用于jQuery对象。由于您使用 jQuery 选择器设置每个标签的 href 属性,因此您需要使用 .each() 来使用 wrapInner 及其 href 设置标签:
$('.lists').each(function() {
$(this).wrapInner('<a class="links"> </a>');
$(this).children('a').attr({'href':$(this).text()});
})
JSFIDDLE 示例
你应该尝试这样的事情:
$('.lists').each(function() {
$(this).wrapInner('<a class="links" href="'+$(this).text()+'"> </a>');
});
你也可以使用 $.
each 表示所有li.list
和 $.append() 来附加子元素( <a>
标记)。
演示
$('li.lists').each((i,el) => {
let text =$(el).text();
$(el).text('');
$(el).append($('<a>').attr('href', text).text(text));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class='lists'>http://google.com</li>
<li class='lists'>http://facebook.com</li>
<li class='lists'>http://twitter.com</li>
<li class='lists'>http://youtube.com</li>
相关文章:
- 在单击href链接的同时下载文件
- 如果href包含X,请更改href
- 锚点元素的href属性自动更改
- 锚点元素不't使用svg时,请打开EDGE上的href
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- Href:当前DIV中的目标ID
- href属性内的javascript函数
- ng绑定和ng href问题.ng href未从控制器加载数据
- 如何将href设置为不同的值
- 如何提取“;href"最近列表项中的属性值
- CKEditor如何允许href="javascript:void(0)"在小部件中
- 渲染”;a“;React.js中的可选href
- 在类似Facebook的社交墙中添加href
- D3 Javascript HREF链接替换
- 点击href在谷歌地图中加载位置
- 如何在javascript中的某个按钮上更改href的值
- 我可以使用location.href为变量生成url吗
- 根据滚动位置动态更改href
- Webscratching自动化如何在没有链接TAG的情况下模拟点击HREF链接