jQuery .attr() dan .removeAttr()

Tabel Konten
  1. Dasar Penggunaan 
  2. Contoh Penerapan: Menambah dan Menghapus Atribut pada Elemen 
    1. HTML 
    2. CSS 
    3. jQuery 
  3. Memanipulasi Beberapa Atribut Sekaligus 
  4. Pandangan Lebih Jauh 
    1. HTML 
    2. CSS 
    3. jQuery 
jQuery .attr() dan .removeAttr()

.attr() digunakan untuk menyisipkan/mengubah atribut pada elemen target.

.removeAttr() digunakan untuk menghilangkan atribut pada elemen target.


Dasar Penggunaan 

Kode di bawah ini akan menambahkan atribut title dengan nilai Taufik Nurrohman pada elemen berupa gambar jika gambar tersebut tidak memiliki atribut title. Jika gambar tersebut sudah memiliki atribut title dengan nilai tertentu, maka kode ini bertugas untuk mengubah nilai atribut title gambar menjadi Taufik Nurrohman:

$('img').attr('title', 'Taufik Nurrohman');

Kode di bawah ini akan mengambil data berupa nilai atribut alt dari gambar untuk dimasukkan ke dalam variabel judul:

var judul = $('img').attr('alt');

Kode di bawah ini akan menghapus atribut title pada elemen berupa gambar:

$('img').removeAttr('title');

Contoh Penerapan: Menambah dan Menghapus Atribut pada Elemen 

HTML 

<div id='area'></div>

<div id='button-wrapper'>
    <button class='add'>Tambahkan Atribut TITLE</button>
    <button class='remove' style='display:none;'>Hilangkan Atribut TITLE</button>
</div>

CSS 

#area {
  width:200px;
  height:300px;
  background-color:#ffa500;
  border:2px solid #fff;
  -webkit-box-shadow:0px 1px 3px rgba(0,0,0,0.4);
  -moz-box-shadow:0px 1px 3px rgba(0,0,0,0.4);
  box-shadow:0px 1px 3px rgba(0,0,0,0.4);
  cursor:pointer;
}

jQuery 

$(function() {
    $('button.add').click(function() {
        // Tambahkan atribut title dengan nilai "Tooltip telah ditambah"
        $('#area').attr('title', 'Tooltip telah ditambah');
        $(this).hide();$('button.remove').show();
    });

    $('button.remove').click(function() {
        // Hilangkan atribut title pada #area
        $('#area').removeAttr('title');
        $(this).hide();$('button.add').show();
    });
});

Lihat Demo

Memanipulasi Beberapa Atribut Sekaligus 

Mengubah beberapa atribut melalui satu .attr() dapat dilakukan seperti ini:

$('a').attr({
    'href':'#',
    'title':'Blank Links'
});

Coba Sendiri

Pandangan Lebih Jauh 

Anda bisa menggabungkan fungsi ini dengan jQuery .html() dan .text() untuk menciptakan aplikasi sederhana sebagai alternatif untuk menunjukkan nilai lebar, tinggi, judul, atau apapun yang berasal dari nilai atribut pada gambar dengan cepat:

HTML 

<img src='gambar1.jpg' alt='Anime' title='Keroro Gunso' width='300' height='200' />
<img src='gambar2.jpg' alt='Anime' title='Gundam Seed' width='700' height='400' />
<img src='gambar3.jpg' alt='Anime' title='Naruto Shippuden' width='1024' height='600' />
<div style='clear:both;'></div>

<div id='toolpik'>
    <h3 class='imgTitle'></h3>
    <div class='thumbnail'></div>
    <table>
        <tr><td class='bold'>Width:</td><td class='imgWidth'></td></tr>
        <tr><td class='bold'>Height:</td><td class='imgHeight'></td></tr>
        <tr><td class='bold'>URL:</td><td class='imgUrl'></td></tr>
        <tr><td class='bold'>Alt:</td><td class='imgAlt'></td></tr>
    </table>
</div>

CSS 

img {
  float:left;
  border:2px solid #333;
}

#toolpik {
  position:fixed;
  top:10px;
  left:10px;
  z-index:10;
  height:auto;
  background:#eee2e2;
  border:7px solid #cec2c2;
  padding:0px;
  font:normal 12px Arial,Sans-Serif;
  -webkit-box-shadow:0px 1px 3px rgba(0,0,0,0.7);
  -moz-box-shadow:0px 1px 3px rgba(0,0,0,0.7);
  box-shadow:0px 1px 3px rgba(0,0,0,0.7);
  display:none;
}

#toolpik h3 {margin:10px;}

#toolpik img {
  max-width:220px !important;
  height:auto !important;
  border:none;
  display:block;
  margin:0px auto 10px;
}

#toolpik table {
  width:250px;
  background:#ded2d2;
  border:none !important;
  padding:10px;
}

#toolpik table tr, #toolpik table th {
  border:none !important;
  background:transparent !important;
}

#toolpik table td {
  padding:5px;
  border:none !important;
}

#toolpik table td.bold {
  font-weight:bold;
  width:100px;
}

jQuery 

$(document).ready(function() {
    $('img').hover(function() {

    var title  = $(this).attr('title'),  //mengambil data dari atribut title
        width  = $(this).attr('width'),  //mengambil data dari atribut width
        height = $(this).attr('height'), //mengambil data dari atribut height
        src    = $(this).attr('src'),    //mengambil data dari atribut src
        alt    = $(this).attr('alt');    //mengambil data dari atribut alt

        $('#toolpik').stop(true, true).fadeIn(); //menampilkan #toolpik pada saat gambar disentuh dengan efek fadeIn

        //menyisipkan thumbnail gambar dengan URL gambar yang sama dengan gambar yang disentuh pada elemen <div class='thumbnail'>
        $('#toolpik .thumbnail').html('<img alt="thumbnail" src="' + src + '" />');

        //menyisipkan judul dengan teks yang sama dengan nilai atribut title gambar pada elemen <h3 class='imgTitle'>
        $('#toolpik h3.imgTitle').text(title);

        //menyisipkan width dengan teks yang sama dengan nilai atribut width gambar pada elemen <td class='imgWidth'>
        $('#toolpik td.imgWidth').text(width);

        //menyisipkan height dengan teks yang sama dengan nilai atribut height gambar pada elemen <td class='imgHeight'>
        $('#toolpik td.imgHeight').text(height);

        //menyisipkan URL gambar dan mengubahnya menjadi sebuah link dengan nilai href dan label yang sama dengan nilai atribut src gambar pada elemen <td class='imgUrl'>
        $('#toolpik td.imgUrl').html('<a href="' + src + '">' + src + '</a>');

        //menyisipkan alt dengan teks yang sama dengan nilai atribut alt gambar pada elemen <td class='imgAlt'>
        $('#toolpik td.imgAlt').text(alt);

    }, function() {

        //menghilangkan #toolpik saat pointer keluar dari gambar dengan efek fadeOut
        $('#toolpik').stop(true, true).fadeOut();

    }).mousemove(function(e) {

        //membuat posisi #toolpik melayang mengikuti pointer mouse
        $('#toolpik').css({top:e.clientY - 100, left:e.clientX + 40});

    });
});
jQuery untuk Membuat Aplikasi
Kreatif dengan jQuery

Lihat Demo

9 Komentar

  • Unknown

    Maaf mas Taufik OOT, Habisnya bingung mau tanya dimana lagi.

    Ceritanya Saya lagi nyoba bikin TTS dan dah dicoba make generator tts eclipsecrossword. tapi kekurangannya tts yang dihasilkan tidak memiliki nomor mendatar dan menurun seperti layaknya TTS.

    Pertanyaanya, bagaimana menambahkan nomor pada tts tersebut.
    ini sourcenya http://jsfiddle.net/Satyapradana/5Qp2C/

    Mohon bantuannya mas -thnks-

    • Unknown

      tambahan nih mas, mungkin mksd pertanyannya kurang lebih, bagaimana insert nomer pada area tertentu pada tabel menggunakan javascript. Lebih khusus bagaimana menyisipkan nomer pada tts tersebut.

  • Nona

    "removeAttr" untuk beberapa atribut begini bukan perintahnya mas ?

    <i rel="code">
    $('.separator a').removeAttr({
    'style',
    'imageanchor'
    });
    </code>

    saya coba hasilnya "Unexpected token" koreksinya mas hehe

    • Nona

      eh gini maksutnya

      $('.separator a').removeAttr({
      'style',
      'imageanchor'
      });

      • Unknown

        mungkin maksudnya begini
        $(".separator a").removeAttr("imageanchor");
        $(".separator a img").removeAttr("border");

        tapi kalo tujuannya untuk validasi html menurut saya itu percuma, walopun di inspect elemen attribut imageanchor dan border hilang tapi jika di view source browser tetap menampilkan hasil yang sebenarnya. (hehe mohon dikoreksi ulang)

        • Taufik Nurrohman

          Iya betul sekali. JavaScript bukan bahasa server-side, jadi percuma saja.

    • Taufik Nurrohman

      Belum pernah coba, tapi coba begini atau begini:

      $('.foo').removeAttr('style imageanchor');
      $('.foo').removeAttr(['style', 'imageanchor']);
      $('.foo').attr({
      'style': null,
      'imageanchor': null
      });
  • Mr. x

    Gan mau tanya nih, ini kenapa ya kok error terus.
    padahal menurut saya udah bener semua tapi masih aja gak work.

    intinya saya ingin menggunakan src gambar no.1 untuk gambar no.2 supaya gambarnya bisa sama.

    <script>
    //<![CDATA[
    $(document).ready(function() {
    var gambar1 = $(".post-body img");
    //untuk mengambil url gambar asli
    var gambarasli = gambar1.attr('src');
    //gambar pertama
    gambar1.attr("src",".../koding/loadimage.jpg");
    //gambar kedua asli error disini
    gambar2.attr("src", + gambarasli);
    });
    //]]>
    </script>

    terima kasih

Komentar telah ditutup.