2014-10-05 3 views
-2

Как получить атрибут title и добавить в другое место?Как получить атрибут title и добавить в другое место

У меня есть этот код ниже:

<div class="span"> 
<a title="SHARON MORGAN" href="/members/SHARONMORGAN"> 
    <span class="avatar avatar-96 avatar-default"></span> 
</a> 
</div> 

То, что я хочу изменить так:

<div class="span"> 
<a title="SHARON MORGAN" href="/members/SHARONMORGAN"> 
    <span class="avatar avatar-96 avatar-default"></span> 
</a> 
<a href="/members/SHARONMORGAN">SHARON MORGAN</a> 
</div> 

Обратите внимание на имя ШАРОН MORGAN вставляется рядом с тега привязки и обертывание с той же ссылке над ним. Любая помощь приветствуется.

ответ

0

Используя jQuery, вам нужно как-то захватить элемент и прочитать атрибут title. Тогда вы можете делать то, что хотите.

<a title="SHARON MORGAN" id="sharon-morgan" href="..."><span>...</span></a> 
<script type="text/JavaScript"> 
var title = $('a#sharon-morgan').attr('title'); 
var href = $('a#sharon-morgan').attr('href'); 
var a = $('<a href="' + href + '">' + title + '</a>').appendTo('body'); 
</script> 

Конечно, это просто пример, потому что вы не указали слишком много деталей. Посмотрите на jQuery, это делается именно для таких вещей.

+0

'appendTo()' должно быть в '.span'', а не' 'body''. – Regent

+0

Кроме того, почему вы добавляете элемент 'id' в элемент? Существует много способов выбрать этот элемент '' без 'id'. – Regent

+0

Я сказал, что это просто ПРИМЕР, потому что есть сотни способов сделать это. И я не вижу, чтобы вы добавляли что-либо к элементу span, но гораздо больше создавали новый a-элемент и добавляли после первого к родительскому элементу. И почему id? Также в качестве примера. Как-то вам нужно захватить элемент. –

1

Вы можете использовать метод after для генерации нового элемента. this в обратном вызове функции ссылается на выбранный элемент (ы), так что вы можете использовать this.title, this.getAttribute('title') или $(this).attr('title') для получения значения заголовка:

$('div.span a').after(function() { 
    return $('<a/>', { 
     href: this.href, 
     text: this.title 
    }); 
}); 

Или используя ваниль JS:

[].slice.call(document.querySelectorAll('div.span a')).forEach(function(el) { 
    var a = document.createElement('a'); 
    a.href = el.href; 
    a.textContent = el.title; 
    el.parentNode.insertBefore(a, el.nextSibling); 
}); 

http://jsfiddle.net/y2goyvvm/

1

С основным заявлением на jquery:

$(function() { 
    $('[title="SHARON MORGAN"]').each(function() { 
     $(this.parentNode).append('<a href=\"' + this.href + '\">' + this.title + '</a>'); 
    }); 
}); 
+0

'' '' может просто быть '' '. – Regent

+0

Regent, вам нужна наша помощь? Что касается знания, вы только сообщаете нам, что мы делаем неправильно в наших ответах, но, очевидно, вы понятия не имеете о JavaScript или jquery. Это отстойный чувак. –

+0

но, он прав, это моя плохая привычка: D – Icepickle

Смежные вопросы