การเพิ่มและลบ style attribute จาก div ด้วย jquery


103

ฉันได้รับช่วงโปรเจ็กต์ที่ฉันกำลังทำอยู่และฉันกำลังอัปเดตแอนิเมชั่น jquery (ฝึก jquery น้อยมาก)

ฉันมี div ฉันต้องการเพิ่มและลบแอตทริบิวต์สไตล์จาก นี่คือ div:

<div id='voltaic_holder'>

จนถึงจุดหนึ่งของแอนิเมชั่นฉันต้องเพิ่มสไตล์ให้กับมัน:

<div id='voltaic_holder' style='position:absolute;top:-75px'>

ฉันค้นหารอบ ๆ และพบ.removeAttr()วิธีการแล้ว แต่ฉันไม่เห็นวิธีการเพิ่มหรือแม้แต่ส่วนระยะไกลของมัน (เช่นด้านบน: -75px เท่านั้น)

ขอบคุณ


$('voltaic_holder').style = nullบางที? สไตล์มีโครงสร้างวัตถุทั้งหมดของตัวเอง แอตทริบิวต์อื่น ๆ ส่วนใหญ่เป็นเพียงข้อมูลประเภทคีย์ = ค่า
Marc B

คำตอบ:


246

คุณสามารถดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้

ตั้งค่าคุณสมบัติแต่ละสไตล์แยกกัน:

$("#voltaic_holder").css("position", "relative");

ตั้งค่าคุณสมบัติหลายสไตล์พร้อมกัน:

$("#voltaic_holder").css({"position":"relative", "top":"-75px"});

ลบสไตล์เฉพาะ:

$("#voltaic_holder").css({"top": ""});
// or
$("#voltaic_holder").css("top", "");

ลบแอตทริบิวต์สไตล์ทั้งหมด:

$("#voltaic_holder").removeAttr("style")

ฉันสามารถเพิ่มคุณสมบัติ css มากกว่า 1 รายการต่อบรรทัดได้หรือไม่ หรือฉันต้องทำอย่างใดอย่างหนึ่งสำหรับคุณสมบัติแต่ละสไตล์เช่นนั้น: $("#voltaic_holder").css("position", "relative"); $("#voltaic_holder").css("top", "-75");
ประกาศ

3
เพื่อตอบว่าใช่คุณทำได้ เพียงแค่ใช้อ็อบเจกต์ลิเทอรัลบนฟังก์ชัน. css () เช่น $ ('foo'). css ({'height': '30px', 'width': '50px'});
Richard Neil Ilagan

@AdamAlbrecht ฉันจะลบสไตล์เฉพาะที่เพิ่มเข้าไปได้อย่างไรเพราะใน $ ("# voltaic_holder") removeAttr ("style") จะลบรูปแบบที่ใช้ทั้งหมดซึ่งเป็นค่าเริ่มต้นโดยค่าเริ่มต้นเมื่อเพิ่มใหม่
กฎ 3 ข้อ

21

หากต้องการลบแอตทริบิวต์สไตล์ของvoltaic_holderช่วงโดยสมบูรณ์ให้ทำดังนี้:

$("#voltaic_holder").removeAttr("style");

ในการเพิ่มแอตทริบิวต์ให้ดำเนินการดังนี้:

$("#voltaic_holder").attr("attribute you want to add", "value you want to assign to attribute");

หากต้องการลบเฉพาะสไตล์ด้านบนให้ทำดังนี้:

$("#voltaic_holder").css("top", "");

15

หากคุณใช้ jQuery ให้ใช้cssเพื่อเพิ่ม CSS

$("#voltaic_holder").css({'position': 'absolute',
    'top': '-75px'});

เพื่อลบแอตทริบิวต์ CSS

$("#voltaic_holder").css({'position': '',
    'top': ''});

คุณไม่สามารถลบตำแหน่งหรือแอตทริบิวต์บนสุดออกจากองค์ประกอบ voltaic_holder ได้เนื่องจากไม่มีแอตทริบิวต์ thos นี่คือคุณสมบัติ css ที่กำหนดในแอตทริบิวต์ style
Peter Olson

@ ปีเตอร์ - ดู๊! แก้ไขเพื่อใช้งาน.css
justkt

10

วิธีง่ายๆในการจัดการสิ่งนี้ (และโซลูชัน HTML ที่ดีที่สุดในการบูต) คือการตั้งค่าคลาสที่มีสไตล์ที่คุณต้องการใช้ จากนั้นมันก็เป็นเรื่องธรรมดาของการใช้addClass ()และremoveClass ()หรือแม้กระทั่งtoggleClass ()

$('#voltaic_holder').addClass('shiny').removeClass('dull');

หรือแม้กระทั่ง

$('#voltaic_holder').toggleClass('shiny dull');


2

ในกรณีของวิธีการ. cssใน jQuery for ! importantจะใช้ไม่ได้

ในกรณีนี้เราควรใช้ฟังก์ชัน. attr

ตัวอย่างเช่นหากคุณต้องการเพิ่มสไตล์ดังต่อไปนี้:

<div id='voltaic_holder' style='position:absolute;top:-75px !important'>

คุณควรใช้:

$("#voltaic_holder").attr("style", "position:absolute;top:-75px !important");

หวังว่าจะช่วยได้บ้าง


1

ลบสไตล์แอตทริบิวต์จาก div โดยใช้แบบสอบถาม J:

$("#TableDiv").removeAttr("style");

เพิ่มสไตล์ให้กับ div โดยใช้แบบสอบถาม J:

$("#TableDiv").attr("style", "display: none;");

เพิ่มสไตล์โดยใช้ html:

<div class="row" id="TableDiv" style="display: none;">
</div>

หวังว่าจะเป็นประโยชน์ :)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.