Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

terra

javascripts

Recommended Posts

Olá,

 

 

Preciso colocar o resultado deste javascript em href=

 

 

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

<script type="text/javascript">
$(function(){
var favoritos = JSON.parse(localStorage.getItem("favoritos"));
$(favoritos).each(function(i,v) {
$('#favoritos').append("<li>" + v + "</li>");
});
});
</script>
mostra: <ul id='favoritos'></ul>
Agradeço qualquer ajuda
Toninho

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim ? não entendi o que você quer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não pode colocar uma tag <a> como pai de uma tag <ul>. O html não permite isso.

 

O que você pode fazer é, cada li ter a sua própria tag <a>

<ul>
  <li><a href=""></a></li>
  <li><a href=""></a></li>
  <li><a href=""></a></li>
</ul>

Compartilhar este post


Link para o post
Compartilhar em outros sites

bruno,

 

o javascript acima mostra

 

/detalhe/89f1d8b8658d0f6e/Recepcionista-belo-horizonte.html o que quero é tornar isso um link

 

<script type="text/javascript" src="https://cdnjs.cloudf...n.js"></script>

<script type="text/javascript">
$(function(){
var favoritos = JSON.parse(localStorage.getItem("favoritos"));
$(favoritos).each(function(i,v) {
$('#favoritos').append("<li>" + v + "</li>");
});
});
</script>
eu não posso colocar esse + v + no href
algo, sei lá, <a href='detalhe.php?id=+ v +' ?
o quero é colocar em cada resultado de busca um Adicionar aos favoritos ou ADD Minha Lista
valeu pela resposta

Compartilhar este post


Link para o post
Compartilhar em outros sites
   $('#favoritos').append('<li><a href="detalhe.php?id=' + v + '">' + v + '</a></li>'); 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bingo!!!

 

É isso mesmo.Valeu Bruno.

 

Obrigadoooooo

 

Vou abusar.

 

eu gostaria além do ID de inserir mais informações como titulo por exemplo.

 

e também, é possível trocar Adicionar por Remover depois de adiconado ao favoritos e vice-versa?

 
<script type="text/javascript">
           $(function(){
                // localStorage.clear();
                var favoritos = [];
                
                // Adicionar item aos favoritos
                function addFav(id) {
                    if(favoritos.indexOf(id) == -1){
                        favoritos.push(id);
                    }
                    localStorage.setItem("favoritos", JSON.stringify(favoritos));  
                }
                
                // Remover item dos favoritos
                function removeFav(id){
                var i = favoritos.indexOf(id);
                if(i != -1) {
                    favoritos.splice(i, 1);
                }
                   localStorage.setItem("favoritos", JSON.stringify(favoritos));
                }
 
                $(document).on('click', '.not-add', function(e){
                   e.preventDefault();
                   var id = $(this).prop('id');
                   $(this).next().text('Remover');
                   $(this).prop('class', 'add');
                   addFav(id);
                   var fav = JSON.parse(localStorage.getItem("favoritos"));
                   console.log(fav);
                });
                
                
                $(document).on('click', '.add', function(e){
                    var id = $(this).prop('id');
                    e.preventDefault();
                    $(this).next().text('ADICIONAR');
                    $(this).prop('class', 'not-add');
                    removeFav(id);
                    var fav = JSON.parse(localStorage.getItem("favoritos"));
                    console.log(fav);
                });
                
            });
        </script>

novamente obrigado

 

Toninho

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, igual você fez com o .prop('class', 'not-add') em .on('click', '.add', para trocar a classe, você faz com o texto para mudar de adicionar para remover.

Igualzinho.

 

Quanto a inserir mais informações, isso depende se você consegue pegar elas.

você está pegando o id:

var id = $(this).prop('id');
e as outras, você tem acesso ? por exemplo:

var title = $(this).text();
?

isso seria tecnicamente o "titulo", o conteúdo da tag.

 

Ai na hora de inserir você modifica a função add para aceitar não apenas um ID, mas sim um objeto complexo:

 

{
   id: '/foo/bar.html',
   title: 'Tal Coisa'
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bruno,

 

fiz assim, mas inseriu null

 

 

function addFav(id,title) {

if(favoritos.indexOf(id) == -1){
favoritos.push(id);
}
if(favoritos.indexOf(title) == -1){
favoritos.push(title);
}
localStorage.setItem("favoritos", JSON.stringify(favoritos));
}
$(document).on('click', '.not-add', function(e){
e.preventDefault();
var id = $(this).prop('id');
var title = $(this).text();
$(this).next().text('Remover');
$(this).prop('class', 'add');
addFav(id);
var fav = JSON.parse(localStorage.getItem("favoritos"));
console.log(fav);
});
$(document).on('click', '.add', function(e){
var id = $(this).prop('id');
var title = $(this).text();
e.preventDefault();
$(this).next().text('ADICIONAR');
$(this).prop('class', 'not-add');
removeFav(id);
var fav = JSON.parse(localStorage.getItem("favoritos"));
console.log(fav);
});

 

Aqui onde clico para inseri

 

<a href="#" title="{$job.jobtitle}" id="{$job.jobid}" class="not-add">Adicionar aos Favoritos </a>

<span class="status">NÃO ADICIONADO</span>

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.