2014-09-07 4 views
0

Я хочу создать мобильное меню с JQuery, но я не могу сменить переназначение href-атрибутов и текстовых атрибутов на новые ссылки, созданные мной с помощью JQuery , Когда я запускаю консольный журнал в $ (this) .attr ('href') и var $ litext = $ (this) .text() все кажется прекрасным. Я просто не могу понять, как подключить новые ссылки к двум элементам.Добавление атрибута 'href' существующих ссылок на другие ссылки с JQuery

Я сделал JSFiddle: http://jsfiddle.net/14htwa2u/1/

var $navigation = '<div id="wrapper"><ul><li></li></ul></div>'; 
var $links = '<a class="dot"></a>'; 
$($navigation).append($links); 

$('a').each(function(){ 


// Atrribut href 
var $attribut = $(this).attr('href'); 

console.log($attribut); 
// Text 
var $litext = $(this).text(); 
console.log($litext); 
// Verknüpfung 
$($links).val($(this).attr('href', $attribut)); 

$($links).text($($litext).text()); 


console.log($links); 
}); 

Thx 4 Вашей помощь

+0

Я не понимаю что вы пытаетесь сделать ... Но я вижу, что вы не устанавливаете какой-либо href для другой ссылки, кроме своей собственной, из-за этой строки '$ ($ links) .val ($ (this) .attr (' href ', $ attribut)) '; $ attribut - это $ href, который уже есть! - и вы пытаетесь установить '$ ($ links) .val (* here *)' объект как текст? – hffmr

+0

«* Thx 4 ваша помощь *» - вы не платите за каждого персонажа, этот вопрос не является SMS: не могли бы вы изменить свой вопрос, чтобы использовать фактические слова, которые могли бы просто прояснить ваш вопрос и получить некоторые ответы. –

+0

О, теперь я использовал свои навыки soothsayer: вы только хотите обернуть свою навигацию! Посмотрите на [jquery.wrap()] (http://api.jquery.com/wrap/) - Но почему вы не пытаетесь показать/скрыть навигацию, используя только несколько строк css и, возможно, немного jQuery? - делая это, вы также можете разделить мобильные и настольные браузеры. – hffmr

ответ

0

Вы должны создать новую новую ссылку.

Но сначала, мы добавляем в список к телу, а затем мы добавляем каждую ссылку с его собственным Li-элементом:

$('<div id="wrapper"><ul></ul></div>').appendTo($("body")); 

$("a").each(function() { 
    // get the href-attribute and the link-text 
    var 
    attribute = $(this).attr("href"), 
    text = $(this).text(); 

    // log href and text 
    console.log("attribute: ", attribute, " | text: ", text); 

    // create new link with li in new navigation 
    $('<li><a href="'+ attribute +'" class="dot">'+ text +'</a></li>').appendTo($("#wrapper ul")) 
}) 

Вот ваша обновленная скрипка: http://jsfiddle.net/14htwa2u/4/

+0

Ницца. Это сработало. Большое спасибо. – Steve

0

Вы должны изменить значение href атрибута тега привязки, для которых мы должны использовать attr() функции не val() функции:

var $navigation = '<div id="wrapper"><ul><li></li></ul></div>'; 
var $links = '<a class="dot"></a>'; 
$($navigation).find('li').append($links);// may be you want to append inside list 

$('a').each(function(){ 


// Atrribut href 
var $attribut = $(this).attr('href'); 

console.log($attribut); 
// Text 
var $litext = $(this).text(); 
console.log($litext); 
// Verknüpfung 
$($links).attr('href',$attribut); //use attr instead of val 

$($links).text($($litext).text()); 


console.log($links); 
}); 
+0

Вы не согласны с тем, что вы изменили и что делать? –

+0

@EhsanSajjad Спасибо за ваше редактирование. –

+0

Вы должны добавить описание в ответ, а не просто отправить исправленный код –

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