2011-01-25 25 views
17

Dường như bộ chọn jQuery không hoạt động trong Bảng điều khiển Chrome. Bất kỳ loại bộ chọn nào trả về "null". Các script chạy đúng javascript, tuy nhiên.jQuery trong Chrome Console (8.0.552.237)

Có ai khác nhận thấy thay đổi này hoặc biết sửa chữa.

Cảm ơn.

+2

Bạn có thể gửi ví dụ mã điều đó không hiệu quả? –

+1

ngắn gọn, sử dụng jQuery trong bảng điều khiển thay vì $ – xster

+0

lúc 2012-01-23 truy cập jquery qua $ hiện đang hoạt động trong Chrome 16.0 – mozboz

Trả lời

17

Tôi đã phát hiện nguyên nhân của việc này trong my own question.

Giao diện điều khiển tiêm chức năng riêng của mình (chỉ là một viết tắt) cho document.getElementById(), lấy bí danh là $, mà bóng tối của jQuery $. Cách dễ dàng để kiểm tra điều này: khi bạn đang ở một breakpoint và jQuery dường như bị phá vỡ, so sánh sau đây trong giao diện điều khiển:

  • jQuery
  • $
  • window.$

Các đầu tiên và cuối cùng sẽ là jQuery thích hợp, địa phương $ là một cái gì đó như:

function() { 
    return document.getElementById.apply(document, arguments) 
} 

Điều này là do chạy mã từ giao diện điều khiển được bọc trong một tuyên bố with:

with (window ? window.console._commandLineApi : {}) { 
with (window) { 
    // the actual code you typed in here 
} 
} 

window._commandLineApi.$ là chức năng mà bóng tối jQuery.

stupid chrome


Tìm thấy lỗi trong Chromium cho việc này: http://code.google.com/p/chromium/issues/detail?id=70969

+3

hoặc chỉ cần nhập vào 'jQuery === $'. Nó sẽ trả về true nếu jQuery có quyền kiểm soát dấu $. – Yahel

+1

(và, jQuery sẽ trả về một chức năng tìm kiếm khác, tùy thuộc vào phiên bản jQuery bạn đang chạy, vì vậy điều này dễ dàng hơn) – Yahel

+0

@yc: điều đó cũng sẽ hoạt động. –

0

Chỉ cần chạy lệnh sau trên giao diện điều khiển để làm cho nó làm việc:

$ = jQuery 
Các vấn đề liên quan