2012-03-09 7 views

Trả lời

1

Bạn phải sử dụng toán tử so sánh không gán một biến.

if (divs[i].text == '*word*'){ 

tôi sẽ khuyên bạn nên sử dụng indexOf.

if (divs[i].text.indexOf('*word*') != -1){ 
29

sử dụng indexOf chức năng

if(divs[i].innerHTML.indexOf("word") !== -1) { 
    // something 
} 
+0

Thay thế // thứ gì đó bằng div [i] .style.background = "red"; vẫn làm nổi bật toàn bộ trang. Làm thế nào để có được một tài liệu tham khảo cho các div có chứa "từ"? Cấp, câu hỏi không đòi hỏi chiều sâu đó nhưng để hoàn thành/tò mò nó sẽ là thú vị. – TenLeftFingers

0

sử dụng regexp:

if (divs[i].textContent.match (/\bword\b/)){ 
    //do something 
} 

@RobG nhắc nhở tôi rất

if (divs[i].innerHTML.match (/\bword\b/)){ 
    //do something 
} 

= 3 =

+0

Sẽ không hoạt động trong các trình duyệt không hỗ trợ thuộc tính W3C DOM * textContent *. – RobG

1

Ngoài những gì người khác đã nói về cách sử dụng chức năng .indexOf(), tôi muốn nói .text không phải là thuộc tính nút div. Người dùng .innerHTML

if (divs[i].innerHTML.indexOf('word') > -1){} 
+0

cũng sẽ khớp với nội dung thẻ HTML (ví dụ: tên thẻ và tên và giá trị thuộc tính). – RobG

+0

Nó không được xác định loại nội dung ông đang tìm kiếm. –

+1

Tôi có thể sai, nhưng tôi nghĩ rằng nó khá rõ ràng OP đang tìm kiếm để phù hợp với nội dung văn bản, không phải đánh dấu. – RobG

1

Gosh, rất nhiều câu trả lời!

Để có được chỉ là văn bản của một phần tử, cách đơn giản là sử dụng textContent hay, nơi không được hỗ trợ, innerText. Tất cả các trình duyệt đang sử dụng đều hỗ trợ một hoặc hai trình duyệt khác (có thể cả hai). Bạn cũng có thể sử dụng một biểu thức chính quy (indexOf công trình quá, một RegExp chỉ là một tùy chọn) vậy:

var re = new RegExp('*' + word + '*'); 

if (re.test(div[i].innerText || div[i].textContent)) { 
    // div[i] contains /*word*/ 
} 

Một giải pháp mạnh mẽ hơn sẽ như thế nào:

function getText(el) { 
    if (typeof el.textContent == 'string') { 
    return el.textContent; 
    } 
    if (typeof el.innerText == 'string') { 
    return el.innerText; 
    } 
} 

var re = new RegExp('*' + word + '*'); 

if (re.test(getText(div[i]))) { 
    // div[i] contains /*word*/ 
} 
3
if (document.getElementById('divId').innerHTML.indexOf("word") != -1) { } 
2

Sử dụng includes():

node.textContent.includes('Some text');