DTE :]

Friday, December 16, 2011

jQuery .attr() dan .removeAttr()

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

Labels: ,

9 Comments:

Post a Comment



<< Home