2

我有一个包含这样的列表元素的列表...

<li class="first leaf">
  <a href="/admin/store/orders/view" title="View and process the orders.">View orders</a>
</li>

我想获取title属性并将其作为div附加在这样的后面<a>......

<li class="first leaf">
  <a href="/admin/store/orders/view" title="View and process the orders.">View orders</a>
  <div>View and process the orders.</div>
</li>

到目前为止,我在这里...

(function ($) {    
  $('#block-menu-menu-admin-welcome li a').each(function () {
    $(this).append('<div>' + $(this).attr('title') + '</div>');
  });
})(jQuery);

但它不起作用。任何人都可以帮忙吗?

4

3 回答 3

2

JQuery.append()将 html 插入到选定元素,但您需要在选定元素之后插入 html。改为使用.after()

$('#block-menu-menu-admin-welcome li a').each(function () {
    $(this).after('<div>' + $(this).attr('title') + '</div>');
});

$('a').each(function(){
    $(this).after('<div>' + this.title + '</div>');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li class="first leaf">
    <a href="/admin/store/orders/view" title="View and process the orders.">View orders</a>
  </li>
</ul>

于 2016-10-19T14:13:59.557 回答
2

您循环中的第一个 this 是对锚点的引用。您必须将其梳理到其父元素并附加到该元素。

$(this).parent().append('<div>' + $(this).attr('title') + '</div>');
于 2016-10-19T14:14:23.490 回答
0

这是一个适合你的工作小提琴

$(function(){

     $('.first').append($('.first a').attr('title'));

});
于 2016-10-19T14:20:13.483 回答