2009-06-15 32 views
13

Tôi có đoạn code followng:Bắt yếu tố bởi một chuỗi id phần trong javascript

var inputs = document.getElementsByTagName("input"); 
for (var i = 0; i < inputs.length; i++) { 
inputs[i].disabled = bDisabled; 
} 

tôi cần phải bây giờ thêm một số logic để chỉ vô hiệu hóa các đầu vào có và Id dạng "Yếm *" ở đâu bib có thể là bất kỳ nhân vật nào. Ive thấy câu hỏi khác, nơi này được thực hiện với jquery nhưng tôi không thể sử dụng jquery chỉ javascript đơn giản. Bất kỳ trợ giúp sẽ được đánh giá cao.

Cảm ơn

+2

Chính xác hơn. "bib" có thể là bất kỳ nhân vật nào không? Bạn có nghĩa là * có thể là bất kỳ nhân vật? sao cho bibo phù hợp nhưng thư mục không? –

+0

Bạn có thể sử dụng bộ chọn thuộc tính kiểu CSS không? Tôi tưởng tượng document.getElementsByTagName ('[id^= bib]'); sẽ hoạt động. – Eytan

Trả lời

17

Đây là nội dung khá cơ bản.

var inputs = document.getElementsByTagName("input"); 
for (var i = 0; i < inputs.length; i++) { 
    if(inputs[i].id.indexOf("bib") == 0) 
    inputs[i].disabled = bDisabled; 
} 
+0

Thay vì đạp xe qua chúng mọi lúc ... hãy lưu các phần tử trong một mảng để chu trình tiếp theo sẽ nhanh hơn. – TJR

+1

TJ, điều đó sẽ tốt nếu mã đang chạy nhiều lần và có một số lượng yếu tố phù hợp tương đối nhỏ. –

2
function CheckDynamicValue(partialid, value) { 

    var re = new RegExp(partialid, 'g'); 
    var elems = document.getElementsByTagName('*'), i = 0, el; 
    while (el = elems[i++]) { 
     if (el.id.match(re)) { 
      el.disabled = value; 
     } 
    } 
} 
0

Tôi đã không cố gắng này bản thân mình, nhưng sẽ phong cách CSS Selectors thuộc tính?

document.getElementsByTagName('[id^=bib]'); 
+0

đối với tôi, điều này luôn trả về bộ sưu tập HTMLElement không có phần tử, mặc dù có nhiều phần tử bắt đầu bằng "bib" (hoặc bất kỳ thứ gì tôi đã thay thế các ký tự đó) – Michael

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