2010-11-22 27 views
6

jsFiddleTại sao mã jQuery này không xóa đường viền khỏi công việc div?

Tôi đang cố xóa đường viền của div bằng jQuery nhưng không hoạt động. Tôi đang làm gì sai?

HTML:

<!DOCTYPE html> 
<html> 
<head> 
    <style> 
    div { width: 200px; height: 150px; background-color: #f33; border: 10px solid silver;} 
    </style> 
</head> 
<body> 
    <div id="a1"></div> 
    <br> 
    <br> 
    <div id="a3">click</div> 
</body> 
</html> 

Javascript:

$("#a3").click(function() { 
    $('#a1').css("border", ""); 
}): 

Trả lời

16
  • tử ID không thể bắt đầu với những con số
  • kịch bản của bạn kết thúc với :, không ;
  • Đặt border-none, không một chuỗi rỗng
+0

Cảm ơn người đứng đầu, tôi đã cập nhật câu hỏi. Vẫn không hoạt động. – ben

+0

@ben: Xem cập nhật của tôi. – SLaks

+0

+1: http://jsfiddle.net/SebastianPataneMasuelli/XWt53/5/ –

6

Ngay cả khi bạn có quyền của id, tôi nghĩ bạn muốn.

$("#three").click(function() { 
    $('#one').css("border", "none"); 
}); 

Nếu bạn đặt kiểu đường viền thành một chuỗi rỗng, nó sẽ không ghi đè kiểu được cung cấp bởi CSS. Bạn cần phải cung cấp cho nó một giá trị sẽ được áp dụng thay thế. Sử dụng chuỗi rỗng sẽ loại bỏ thuộc tính style trên phần tử, để lại kiểu xếp tầng từ thẻ kiểu nội tuyến để áp dụng.

0

Vâng, bạn đã có ba vấn đề:

  1. tử ID có thể không bắt đầu với một số.
  2. Mã JS của bạn kết thúc bằng : (dấu hai chấm); phải là số ; (dấu chấm phẩy) hoặc đó là lỗi cú pháp.
  3. Đặt đường viền thành chuỗi trống sẽ không xóa đường viền. Hãy thử $('#1').css('border', 'none');.
0

thay vì css("border", ""); sử dụng css("border", "none");

Nhưng quan trọng không kém là thay đổi :-; ở phần cuối của kịch bản của bạn vì nó đang gây ra nó để thất bại hoàn toàn.

ví dụ tại http://jsfiddle.net/XWt53/4/

0

Div bạn đang nhấp vào có sự kiện nhấp được liên kết với nó không?

$("#a3").bind('click', function() { 
    $("#a1").css('border', 'none'); 
}); 
Các vấn đề liên quan