Adicionar Class
2 participantes
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Questões sobre códigos :: Questões resolvidas sobre códigos Javascript e jQuery
Página 1 de 1
Adicionar Class
Detalhes da questão
Endereço do fórum: http://somosmugiwara.forumeiros.com
Versão do fórum: PunBB
Descrição
Utilizo o código abaixo para adicionar classes em diferentes tipos de títulos e assim personalizar cada u de uma forma diferente. Gostaria de saber se dar para fazer um parecido, mas que adicione na ID.
- Código:
(function($) {
'use strict';
$(function() {
$('.boxfmvi .main-head .page-title h2').each(function() {
var $this = $(this);
var name = $this
.text()
.toLowerCase()
.normalize('NFD')
.replace(/[\u0300-\u036f]/g, '')
.replace(/[^a-z0-9]+/gi, '-')
.replace(/^-|-$/gi, '')
;
$this.closest('.main-head').addClass('main-head-' + name);
});
});
}(jQuery));
Última edição por Connor R. em 02.11.17 23:43, editado 1 vez(es)
Re: Adicionar Class
Troque por este:
- Código:
(function($) {
'use strict';
$(function() {
$('.boxfmvi .main-head .page-title h2').each(function() {
var $this = $(this);
var name = $this
.text()
.toLowerCase()
.normalize('NFD')
.replace(/[\u0300-\u036f]/g, '')
.replace(/[^a-z0-9]+/gi, '-')
.replace(/^-|-$/gi, '');
$this
.closest('.main-head')
.attr('id', 'main-head-' + name)
;
});
});
}(jQuery));
Re: Adicionar Class
Olá, tentei modificar mas não surtiu efeito....
Veja abaixo o que quero fazer.
Quero que todos os span dentro da Li "atli" tenham acrescido no ID o número 00...
Página onde estou testando, http://somosmugiwara.forumeiros.com/h87-
Veja abaixo o que quero fazer.
Quero que todos os span dentro da Li "atli" tenham acrescido no ID o número 00...
Página onde estou testando, http://somosmugiwara.forumeiros.com/h87-
Re: Adicionar Class
Isso é meio complicado de ser feito, tendo em vista que nem todos tem a mesma estrutura.
Mas eu consegui criar um script que cria um ID único para cada item de lista ( <li> ).
Lembre-se de adicionar o script como um callback após a ação AJAX ser executada. Caso contrário não irá resultar.
Código:
o/
Mas eu consegui criar um script que cria um ID único para cada item de lista ( <li> ).
Lembre-se de adicionar o script como um callback após a ação AJAX ser executada. Caso contrário não irá resultar.
Código:
- Código:
(function ($) {
'use strict';
$(function () {
$('ul').each(function (ulPreIndex, ul) {
var $li = $(this).find('li');
$li.each(function (liPreIndex, li) {
var liIndex = liPreIndex + 1;
var ulIndex = ulPreIndex + 1;
$(this).attr('id', ulIndex + '-list-item-' + liIndex);
});
});
});
})(jQuery);
o/
Re: Adicionar Class
Não precisa ser um id único para cada li, pois o que quero é que cada span dentro da li tenha adicionado em sua id um 00. Quanto a essa questão do callback não entendi, sou meio leigo ainda em javascript.. Pode dar um exemplo?
Re: Adicionar Class
No contexto da minha mensagem acima, callback é o momento após a ação AJAX ser executada e os elementos carregados na tela.
Não entendi isso.Não precisa ser um id único para cada li, pois o que quero é que cada span dentro da li tenha adicionado em sua id um 00.
Re: Adicionar Class
Vou tentar exemplificar, kkk.
No momento está assim:
Quero que fique assim.
Note que na ID block foi acrescido o 00, ficando assim: block00
No momento está assim:
- Código:
<li class="atli"><span>Bloqueio | Defesa:</span><span id="block">08</span><span class="brassa">(+7 Bônus de Raça)</span></li>
Quero que fique assim.
- Código:
<li class="atli"><span>Bloqueio | Defesa:</span><span id="block00">08</span><span class="brassa">(+7 Bônus de Raça)</span></li>
Note que na ID block foi acrescido o 00, ficando assim: block00
Re: Adicionar Class
Aqui o JavaScript:
Resultado na estrutura do DOM:
-> http://prntscr.com/h5hf9d.
o/
- Código:
(function ($) {
'use strict';
$(function () {
$('[id]').each(function () {
$(this).attr('id', $(this).attr('id') + '00');
});
});
}(jQuery));
Resultado na estrutura do DOM:
-> http://prntscr.com/h5hf9d.
o/
Re: Adicionar Class
Tem como colocar o código para funcionar por último?
Pois ele carrega primeiro que outros itens, fazendo com que algumas ID não seja acrescentado o 00.
Pois ele carrega primeiro que outros itens, fazendo com que algumas ID não seja acrescentado o 00.
Re: Adicionar Class
Sim isso, ambos funcionaram juntos.
Mas já notei um problemas, pois um código precisa ser carregado primeiro, assim puxando as informações e posteriormente deve ser executado o código de adicionar o 00 no ID....
Mas já notei um problemas, pois um código precisa ser carregado primeiro, assim puxando as informações e posteriormente deve ser executado o código de adicionar o 00 no ID....
Re: Adicionar Class
Certo. Vamos resolver o outro tópico primeiro para prosseguirmos à este, tudo bem? o/
Re: Adicionar Class
Tente trocar o código de sua página por:
- Código:
<!DOCTYPE html>
<html lang="pt">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Título da Página</title>
<!-- Bootstrap's CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-beta/css/bootstrap.min.css" />
</head>
<body>
<div class="container">
<form class="links-form pre-ajax-content">
<fieldset>
<legend class="mb-4">Por favor, coloque os <em>links</em> abaixo:</legend>
<div class="form-group">
<label for="link-1">Link 1:</label>
<input type="url" id="link-1" class="form-control" required />
</div>
<div class="form-group">
<label for="link-2">Link 2:</label>
<input type="url" id="link-2" class="form-control" required />
</div>
<div class="form-group">
<button type="submit" id="submit" class="btn btn-primary">Próximo</button>
</div>
</fieldset>
</form>
<div class="ajax-content" style="display: none;">
<div class="row">
<div id="conteudo" class="col conteudo"></div>
<div id="conteudo2" class="col conteudo2"></div>
</div>
</div>
</div>
<!-- Script's. Colocar todo o HTML acima deste comentário. -->
<script src="https://code.jquery.com/jquery-latest.min.js"></script>
<script>
(function ($) {
'use strict';
var doStuff = function (selector, link) {
$.post(link)
.done(function (context) {
alert('O conteúdo será carregado agora...');
var $content = $('#atrificha', context);
$(selector).html($content);
$('[id]').each(function () {
$(this).attr('id', $(this).attr('id') + '00');
});
})
;
};
$(function () {
$('.links-form').on('submit', function (event) {
event.preventDefault();
$('.pre-ajax-content').hide();
$('.ajax-content').show();
var link1 = $('#link-1').val();
var link2 = $('#link-2').val();
$('#conteudo').load(link1 + ' #atrificha', function () {
doStuff('#conteudo', link1);
});
$('#conteudo2').load(link2 + ' #atrificha', function () {
doStuff('#conteudo2', link2);
});
});
});
}(jQuery));
</script>
</body>
</html>
Re: Adicionar Class
Aqui poderia ser o seguinte.
As ID do link 1 seria acrescida o 00 e as ID do link 2 seria acrescida 01.
Testei o código que você passou, está adicionando 0000. Mas poderia ser do jeito que pedi acima.
As ID do link 1 seria acrescida o 00 e as ID do link 2 seria acrescida 01.
Testei o código que você passou, está adicionando 0000. Mas poderia ser do jeito que pedi acima.
Re: Adicionar Class
Troque por:
- Código:
<!DOCTYPE html>
<html lang="pt">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Título da Página</title>
<!-- Bootstrap's CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-beta/css/bootstrap.min.css" />
</head>
<body>
<div class="container">
<form class="links-form pre-ajax-content">
<fieldset>
<legend class="mb-4">Por favor, coloque os <em>links</em> abaixo:</legend>
<div class="form-group">
<label for="link-1">Link 1:</label>
<input type="url" id="link-1" class="form-control" required />
</div>
<div class="form-group">
<label for="link-2">Link 2:</label>
<input type="url" id="link-2" class="form-control" required />
</div>
<div class="form-group">
<button type="submit" id="submit" class="btn btn-primary">Próximo</button>
</div>
</fieldset>
</form>
<div class="ajax-content" style="display: none;">
<div class="row">
<div id="conteudo" class="col conteudo"></div>
<div id="conteudo2" class="col conteudo2"></div>
</div>
</div>
</div>
<!-- Script's. Colocar todo o HTML acima deste comentário. -->
<script src="https://code.jquery.com/jquery-latest.min.js"></script>
<script>
(function ($) {
'use strict';
var doAJAX = function (selector, link, fn) {
$.post(link)
.done(function (context) {
alert('O conteúdo será carregado agora...');
var $content = $('#atrificha', context);
$(selector).html($content);
if (fn && typeof(fn) === 'function') {
fn();
}
})
;
};
$(function () {
$('.links-form').on('submit', function (event) {
event.preventDefault();
$('.pre-ajax-content').hide();
$('.ajax-content').show();
var link1 = $('#link-1').val();
var link2 = $('#link-2').val();
$('#conteudo').load(link1 + ' #atrificha', function () {
doAJAX('#conteudo', link1);
});
$('#conteudo2').load(link2 + ' #atrificha', function () {
doAJAX('#conteudo2', link2, function () {
$('[id]').each(function (index, el) {
$(this).attr('id', $(this).attr('id') + '0' + index);
});
});
});
});
});
}(jQuery));
</script>
</body>
</html>
Re: Adicionar Class
o/
Questão marcada como Resolvida ou o Autor solicitou que ela fosse arquivada. Tópico marcado como Resolvido e movido para Questões resolvidas. |
Tópicos semelhantes
» Javascript de adicionar e remover class
» Id ou class
» Class Inner
» Class forumline
» Aplicar class à tabela do rpg
» Id ou class
» Class Inner
» Class forumline
» Aplicar class à tabela do rpg
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Questões sobre códigos :: Questões resolvidas sobre códigos Javascript e jQuery
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos