2013-05-10 52 views
6
<div class="Trade"> 
    <div id="Offer"> 
     <div class="NoResults">No Result!</div> 
     <div class="FooterPager"> <span id="Offer"><a disabled="disabled">First</a>&nbsp;<a disabled="disabled">Previous</a>&nbsp;<a disabled="disabled">Next</a>&nbsp;<a disabled="disabled">Last</a>&nbsp;</span> 
     </div> 
    </div> 
</div> 

Đây là javascript của tôi:Javascript: Kiểm tra xem classname tồn tại

function Check(){ 
return !(iframe.contentDocument.getElementById("Offer").firstElementChild.tagName.toLowerCase() == "table"); 
} 

Có thể trả về giá trị true hoặc false để kiểm tra xem lớp "NoResult" tồn tại? Nếu vậy, làm thế nào để làm điều đó? Các bạn đá. Tôi không thể thay đổi mã HTML, chỉ có javascript.

Trả lời

1

Trong Javascript mà không sử dụng một thư viện như jQuery, bạn có thể làm điều đó bằng cách:

(' ' + MyElement.className + ' ').indexOf(' MyClassName ') != -1 

này để đánh giá đúng khi "MyClassName" xuất hiện bất cứ nơi nào bằng cách riêng của mình bên trong chuỗi như xác định trên className tài sản.

Trong trường hợp cụ thể của bạn, một cái gì đó như:

function Check() 
{ 
    //Returns true when it exists 
    return (' ' + iframe.contentDocument.getElementById('Offer').firstElementChild.className + ' ').indexOf(' NoResults ') != -1; 
} 

Có trước đây là một sai lầm trong câu trả lời của tôi, nơi nó sẽ xác định sai một trận đấu một phần như đã chỉ ra trong các ý kiến. Về cơ bản, bạn cần phải xem xét trong kiểm tra xem tên lớp là toàn bộ. Một cách gọn gàng để làm điều này (giống như các câu trả lời khác cho thấy) là nếu bạn có khoảng cách trước và sau cả thuộc tính className và lớp bạn đang tìm kiếm, nó sẽ luôn tìm cả lớp.

Trong khi điều này sẽ hoạt động, tôi khuyên bạn nên Alex's answer như trong khi classListisn't available in every browser (< = IE9 và một số khác), đó là giải pháp gọn nhẹ cho vấn đề.

18

Sử dụng classList.

var hasClass = element.classList.contains('some-class'); 

Further Reading (từ chối trách nhiệm: liên kết tới bài đăng của chính tôi).

Nếu không được hỗ trợ trong các nền tảng mục tiêu của bạn, sau đó thử ...

var hasClass = (" " + element.className + " ").indexOf(" some-class ") > -1; 
+0

+1 cho 'classList' – Turnerj

+0

@Turnerj - Thật không may, ngay cả IE9 cũng không hỗ trợ điều đó: ( –

+2

Ahhh, bạn nói đúng là nó không hỗ trợ nó. Đối với bất kỳ ai muốn biết hỗ trợ, [kiểm tra tại đây] (http://caniuse.com/#search=classList) – Turnerj

1
if (~(' ' + element.className + ' ').indexOf(' NoResult ')) { 
    // here you go. You've got that class... 
} 
-1

Bạn có thể sử dụng .hasClass ('classname') jQuery chức năng và nó sẽ trở thành sự thật nếu tên lớp tồn tại

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