2009-03-12 31 views
31

Tôi có một bảng và mỗi td của nó có một id duy nhất tương ứng với một số khoảng thời gian (0800 til 0830 ... 0830 đến 0900 vv). Và tôi có một văn bản đầu vào nơi người dùng sẽ nhập khoảng thời gian họ muốn chặn. Và nếu họ gõ một khoảng thời gian không tồn tại trong bảng của tôi, nói cách khác, nếu họ gõ một khoảng thời gian không tương ứng với bất kỳ id của td của tôi, tôi muốn hiển thị một cảnh báo nói rằng một cái gì đó như "khoảng thời gian này không phải là có sẵn để chặn ".jQuery - làm cách nào tôi có thể tìm thấy phần tử có id nhất định?

Nhưng, tôi đang gặp khó khăn trong việc tìm thấy id này. tôi đang làm điều này:

var horaInicial = $("#horaInicial").val().split(':')[0] + $("#horaInicial").val().split(':')[1]; // this is remover the ":" from a formatted hour 

var verificaHorario = $("#tbIntervalos").find("td").attr("id", horaInicial); 

Nhưng điều này "verificaHorario" là thực sự thiết lập tất cả của td tôi để id horaInicial này.

Vì vậy, làm thế nào tôi có thể tìm thấy một id trong bảng của tôi và nếu nó không tồn tại cho thấy một số cảnh báo.

thanks !!

Trả lời

63

Nếu bạn đang cố gắng để tìm một phần tử bằng cách id, bạn không cần phải tìm kiếm bàn duy nhất - nó phải là duy nhất trên trang web, và do đó bạn sẽ có thể sử dụng:

var verificaHorario = $('#' + horaInicial); 

Nếu bạn cần phải chỉ tìm kiếm trong bảng vì lý do gì, bạn có thể sử dụng:

var verificaHorario = $("#tbIntervalos").find("td#" + horaInicial) 
+0

Đối với tôi, cách thức không hoạt động, nhưng ví dụ: * $ ("# tbIntervalos"). Tìm ("td #" + horaInicial) * – Andrew

3

Vì tất cả các id html là duy nhất trong một tài liệu html hợp lệ tại sao không tìm kiếm ID trực tiếp? Nếu bạn lo lắng nếu họ gõ vào một id mà không phải là một bảng thì bạn có thể kiểm tra các loại thẻ theo cách đó?

Chỉ là một ý tưởng!

S

7

này

var verificaHorario = $("#tbIntervalos").find("#" + horaInicial); 

sẽ tìm thấy bạn td mà cần phải bị chặn.

Trên thực tế điều này cũng sẽ làm:

var verificaHorario = $("#" + horaInicial); 

kiểm tra đối với kích thước() của tập quấn sẽ trả lời câu hỏi của bạn liên quan đến sự tồn tại của id.

+0

Cái nào có hiệu suất tốt hơn? – JCarlos

18

tôi không biết nếu điều này giải quyết vấn đề của bạn, nhưng thay vì:

$("#tbIntervalos").find("td").attr("id", horaInicial); 

bạn chỉ có thể làm:

$("#tbIntervalos td#" + horaInicial); 
6

Đây là thêm một tùy chọn để tìm phần tử cho trên câu hỏi

$("#tbIntervalos").find('td[id="'+horaInicial+'"]')

Các vấn đề liên quan