Rimuovere attributi agli elementi del dom con JavaScript

Rimuovere attributi agli elementi del dom con JavaScript

In questa guida impareremo principalmente a rimuovere attributi agli elementi del dom con JavaScript.

Nelle guide precedenti abbiamo visto come creare nuovi attributi e nuovi elementi in una pagina web.

Al fine di comprendere quello che stiamo trattando, potete consultare i seguenti tutorial:

Creare elementi dom JavaScript
Creare attributi agli elementi.


Utilizzare removeAttribute() per rimuovere attributi agli elementi del dom con JavaScript

Per rimuovere un attributo utilizzeremo il metodo removeAttribute().

La sintassi è dunque questa:

element.removeAttribute(nome_attributo);

dove nome_attributo è il nome dell’attributo da rimuovere.


Esempio di come rimuovere attributi

Se provate a passate con il mouse sopra il link sotto, dove c’è scritto Coding Creativo, compare la manina con la possibilità di cliccarci sopra.

Se adesso premete il pulsante sotto, il collegamento si toglie e il testo Coding Creativo diventa rosso.



Procedimento

Innanzitutto creo un collegamento al sito con il tag a. Dopo inserisco, subito sotto, il pulsante che rimuoverà l’attributo quando verrà fatto clic su di esso.

<a id="collegamento" href="https://www.codingcreativo.it">Coding Creativo</a>
<button onclick="link()">Togli collegamento</button>

Poi scrivo una semplicissima funzione in JavaScript. Questa funzione utilizzerà il metodo removeAttribute() per rimuovere un attributo dal tag a.

Utilizzerà anche la proprietà style.

In particolare in questo esempio utilizziamo la proprietà style per cambiare colore al testo.

Ecco dunque la funzione che ho usato:

<script type="text/javascript">
function link() {
  document.getElementById("collegamento").removeAttribute("href");
  document.getElementById("collegamento").style.color = "red"; 
}
</script>

Utilizzare removeAttributeNode

Il metodo removeAttributeNode(), rimuove l’attributo specificato da un elemento e restituisce l’attributo rimosso come oggetto Attr.

Potrei allora costruire la funzione di prima in questo modo:

function link() {
  var elemento = document.getElementById("collegamento");
  var attr = elemento.getAttributeNode("href");
  elemento.removeAttributeNode(attr);
}

Quindi con la funzione getAttributeNode() recupero il nodo dell’attributo e poi con removeAttributeNode() lo rimuovo.

Chiaramente questi sono solo dei semplici esempi per imparare a rimuovere attributi agli elementi del dom con JavaScript.

Alcuni link utili

Creare elementi nel dom con JavaScript

Dom in JavaScript

Come creare una galleria di immagini con JavaScript

Utilizzare gli array in javascript

Come creare una calcolatrice con javascript

Validare un form con javascript

Saper utilizzare il metodo getElementById

Esempi di Javascript corfirm

Esempi con Javascript prompt

Alcuni esempi con javascript alert

Tutorial javascript

Esempi con gli operatori logici in C++

Esempi con gli operatori logici in C++

Analizziamo oggi alcuni esempi con gli operatori logici in C++.

Nei precedenti tutorial abbiamo definito cosa sono gli operatori logici e abbiamo realizzato un piccolo esempio.

Facciamo altri esempi con gli operatori logici in C++.

Primo esempio

Preso un numero in input controllare se è interno all’intervallo [10,20].

Basta controllare se il numero è maggiore o uguale a 10 e minore o uguale a 20 per dire che è interno all’intervallo.

Quindi utilizzo: if(numero >= 10 && numero <= 20)

Allego il listato completo dell’esempio.

#include <iostream>
using namespace std;

int main() {
    int numero;
    const int a = 10;
    const int b = 20;
    
    cout << "Inserisci un numero: ";
    cin >> numero;
    
    if (numero >= a && numero <= b) {
        cout << "Il numero è interno";
    } else {
        cout << "Il numero è esterno";
    }
    
    return 0;
}

Secondo esempio

Inserire un carattere e dire se è numerico oppure è una lettera dell’alfabeto oppure un’altra cifra qualunque.

if (c >= ‘0’ && c <= ‘9’)

con questa istruzione si vede se il carattere è numerico

if (c >= ‘a’ && c <= ‘z’)

con questa istruzione si vede se il carattere è una lettera minuscola

if (c >= ‘A’ && c <= ‘Z’)

infine, con questa istruzione si vede se il carattere è una lettera maiuscola.

Ecco dunque il listato completo.

#include <iostream>
using namespace std;

int main() {
    char c;

    cout << "Inserisci un carattere: ";
    cin >> c;

    if (c >= '0' && c <= '9') {
        cout << "Cifra numerica";
    } else if (c >= 'a' && c <= 'z') {
        cout << "Carattere dell'alfabeto minuscolo";
    } else if (c >= 'A' && c <= 'Z') {
        cout << "Carattere dell'alfabeto maiuscolo";
    } else {
        cout << "Altro carattere";
    }

    return 0;
}

Terzo esempio

Inserire un carattere in input, se tale carattere è numerico o una lettera dell’alfabeto visualizzare ‘carattere valido’, altrimenti visualizzare ‘carattere non valido’.

Quindi questa volta ad esempio posso fare un solo if dove unisco le tre condizioni:

if ((c >= ‘0’ && c <= ‘9’) || (c >= ‘a’ && c <= ‘z’) || (c >= ‘A’ && c <= ‘Z’))

Se una di queste condizioni si verifica allora il carattere è valido, altrimenti non lo è.

#include <iostream>
using namespace std;

int main() {    
    char c;

    cout << "Inserisci un carattere: ";
    cin >> c;

    if ((c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {
        cout << "Carattere valido";
    } else {
        cout << "Carattere non valido";
    }

    return 0;
}

Quarto esempio

Dati in input 3 caratteri, il primo che rappresenta la classe, il secondo che rappresenta la sezione e il terzo che rappresenta l’indirizzo, dire se la sequenza può essere una classe di un determinato istituto scolastico.

Ipotizziamo che l’istituto abbia le classi che vanno dalla prima alla quinta e che le sezioni possono variare dalla A alla E e che gli indirizzi hanno le seguenti lettere: I=Informatica, E=Elettronica, M=Meccanica e C=Chimica.

Quindi alcune combinazioni possibili possosno essere:

3AI, 2BE, 1CC, 5EM, ecc…

Allora potrei fare questo controllo: prendo in input le variabili c, z e i che rappresentano rispettivamente la classe, la sezione e l’indirizzo.

Controllo se questa condizione è verificata:

if ((c>=1 && c<=5) && (z>=’A’ && z<=’E’) && (i==’I’ || i==’E’ || i==’C’ || i==’M’))

Se vera visualizzo ‘è una classe del nostro istituto’; altrimenti se falsa che non lo è.

Oppure potrei usare delle variabili di tipo booleano, dove vado a memorizzare le operazioni logiche:

flagc=(c>=1 && c<=5);

flags=(z>=’A’ && z<=’E’);

flagi=(i==’I’ || i==’E’ || i==’C’ || i==’M’);

E quindi scrivere:

if (flagc && flags && flagi)


Inoltre, guardando la codifica ASCII, per convertire ciascun carattere da minuscolo a maiuscolo basta effettuare questa operazione:

if (z >= ‘a’ && z <= ‘z’)
z -= 32;

Analogamente per l’indirizzo.

Quindi anche se l’utente dovesse inserire da tastiera ad esempio la sequenza di caratteri 2ai, il programma li convertirà in 2AI.


Ecco quindi il listato completo.

#include <iostream>
using namespace std;

int main() {    
    int c;
    char z, i;
    bool flagc, flags, flagi;
    
    cout << "Inserisci la classe:\n";
    cin >> c;
    cout << "Inserisci la sezione:\n";
    cin >> z;
    cout << "Inserisci l'indirizzo:\n";
    cin >> i;

    // Trasformo z e i in maiuscolo se sono inseriti in minuscolo
    if (z >= 'a' && z <= 'z') {
        z -= 32;
    }
    if (i >= 'a' && i <= 'z') {
        i -= 32;
    }
    
    flagc = (c >= 1 && c <= 5);
    flags = (z >= 'A' && z <= 'E');
    flagi = (i == 'I' || i == 'E' || i == 'C' || i == 'M');
    
    if (flagc && flags && flagi) {
        cout << c << z << i << " è una classe del nostro istituto";
    } else {
        cout << "Non può essere una classe del nostro istit

Chiaramente ho proposto possibili soluzioni agli esempi con gli operatori logici in C++. Proponete pure la vostra soluzione.

Alcuni link utili

Indice argomenti linguaggio C++

1- Introduzione al linguaggio C++

2- Variabili in C++

3- Operatori di assegnazione in C++

4- Esempi in C++

5- Casting in C++

Successione di Fibonacci in C++

Esempio con gli operatori logici in C++

Esempio con gli operatori logici in C++

Analizziamo un esempio con gli operatori logici in C++, al fine di comprendere meglio il funzionamento di detti operatori. Nel precedente tutorial ne abbiamo dato la definizione e visto l’ordine di precedenza.

Riprendiamo innanzitutto un esercizio che abbiamo già realizzato in questo tutorial:
https://www.codingcreativo.it/esercizio-con-if-else-in-c/
.

Riportiamo dunque il testo:

Su una linea ferroviaria, rispetto alla tariffa piena, i pensionati usufruiscono di uno sconto del 10%, gli studenti del 15% e infine i disoccupati del 25%.
Quindi, codificando i pensionati con una P, gli studenti con una S e i disoccupati con una D, scrivere un programma che, rischiesto il costo di un biglietto e l’eventuale condizione dell’utente, visualizzi l’importo da pagare.

Modifichiamo l’esercizio in modo tale che, sia inserendo le lettere minuscole sia le maiuscole, il programma funzioni ugualmente.

Basterà allora trasformare gli if in questo modo:

if (categoria == ‘P’ || categoria == ‘p’ )

Cioè se categoria = ‘P’ oppure categoria = ‘p’.

E così tutti gli altri.

Il resto del programma rimane chiaramente invariato.

Allego il listato completo dell’esempio con gli operatori logici in C++.

#include<iostream>
using namespace std;

int main() {    
    char categoria;
    float costo;
    
    cout << "Inserisci la categoria:\n"
         << "categoria P = pensionati, S = studenti, D = disoccupati):\t ";
    cin >> categoria;
    cout << "prezzo biglietto:\t ";
    cin >> costo;
    
    if (categoria == 'P' || categoria == 'p' ) {
        costo *= 0.9;
    } else if (categoria == 'S' || categoria == 's') {
        costo *= 0.85;
    } else if (categoria == 'D' || categoria == 'd') {
        costo *= 0.75;
    } else {
        cout << "la categoria inserita non ha sconti\n" << endl;
    }
    
    cout << "Pagherai: \t" << costo << endl;
    return 0;
}

Chiaramente questo è solo un semplice esempio con gli operatori logici in C++. Nel prossimo tutorial proporrò degli altri esempi in modo da esercitarci ulteriormente.

Alcuni link utili:

Indice argomenti linguaggio C++

1- Introduzione al linguaggio C++

2- Variabili in C++

3- Operatori di assegnazione in C++

4- Esempi in C++

5- Casting in C++

Successione di Fibonacci in C++

Alcuni tutorial in C

Somma elementi diagonale principale di una matrice

Sommare elementi della cornice esterna di una matrice in C

Somma di due matrici in C

Sommare dei numeri di una matrice in C

Prodotto tra matrici in C

Come ricercare gli elementi in una matrice in C

Inserire dati in una matrice in C

Tavola pitagorica in C

Operatori logici in C++

Operatori logici in C++

Gli operatori logici in C++ consentono di concatenare tra di loro più espressioni logiche o anche di negare il risultato di un’espressione.

Ma vediamo in dettaglio quali sono gli operatori logici in C++:

! (not logico)

&& (and logico)

|| (or logico)


Esempi d’uso degli operatori logici in C++

Operatore not

Il connettivo not ( ! ), come abbiamo già detto, nega un’espressione.

Ad esempio l’espressione:

! a

restituisce vero se a è falsa e viceversa.

L’operatore ! è di tipo unario.


Operatore &&

L’operatore and ( && ) restituisce vero se e solo entrambe le operazioni logiche sono vere.

Ad esempio:

a == 5 && b == 7

Restituisce vero solo se a è uguale a 5 e b è uguale a 7, in tutti gli altri casi restituisce falso.

L’opertore && è un operatore binario.

Operatore ||

L’operatore or (||) restituisce vero se almeno una delle due espressioni è vera.

Ad esempio:

a == 5 || b == 7

E verà sia se le espressioni sono vere entrambe, sia se almeno una delle due è vera. Quindi è falsa solo se entrambe sono false.

L’opertore || è un operatore binario.

Ordine di priorità

L’ordine di priorità è il seguente: prima il not (!) poi l’and (&&) e infine l’or (||).

Quindi se vogliamo un ordine diverso occorre utilizzare le parentesi.

Ad esempio:

a == 5 || b == 7 && c == 6

Prima verranno valutate le operazioni logiche b == 7 e c == 6.

Invece, con le parentesi:

(a == 5 || b == 7) && c == 6

In questo caso verranno valutate prima le operazioni logiche a == 5 || b == 7.


Inoltre la valutazione delle espressioni và, come nel C, da sinistra verso destra.

Facciamo degli esempi sulla valutazione degli operatori logici in C++, per capire meglio il concetto.


Esempi

if (a > 10 || b != 9) ….

In questo caso l’espressione b diverso da 9 verrà valutata solo se l’espressione a>10 è falsa.

if (a > 10 && b != 9) ….

In questo caso l’espressione b diverso da 9 verrà valutata solo se l’espressione a>10 è vera.

Nella prossima lezione vedremo qualche esempio di utilizzo degli operatori logici in C++.

Alcuni link utili:

Indice argomenti linguaggio C++

1- Introduzione al linguaggio C++

2- Variabili in C++

3- Operatori di assegnazione in C++

4- Esempi in C++

5- Casting in C++

Successione di Fibonacci in C++