javascript
  • jquery
  • 2010-04-28 206 views 0 likes 
    0

    我想看看一個特定的字符串是否出現在div中。我已經嘗試過,但是它不會返回真實或錯誤,這是我認爲包含的內容嗎?JQuery的包含返回一個對象?

    if($("#path"+i+"_status:contains('!=')")){ 
    
        alert($("#path"+i+"_status:contains('!=')")); 
    
        //alerts - [object object] 
    
        return true; 
    
    } 
    

    這裏是我的HTML:

    <div class="status" id="path3_status"> 
    <img height="21" align="absmiddle" src="images/valid.jpg">Text File (3000) = Source Table (3000)<img height="21" align="top" src="images/info.jpg" " id="img_path3"> 
    <a onclick="clear_file('TI004OBAE', 'path3');" href="#">Clear</a> 
    </div> 
    

    我在做什麼錯。我如何知道div是否包含字符串「!=」?

    感謝所有的幫助

    回答

    2

    是的,contains是一個jQuery選擇器。選擇器返回jQuery對象實例,它維護對匹配的DOM元素的引用數組。

    檢查jQuery's length property看到一個選擇是否匹配至少一個元素:

    if ($("#path"+i+"_status:contains('!=')").length > 0) { 
        alert("found a match"); 
    } 
    
    +0

    感謝您的解釋傑夫。一個簡單的問題,'contains'只能查看元素中的文本,而不能查看元素中的html? – Abs 2010-04-29 08:55:09

    +0

    我的榮幸!是 - 'contains'只查看元素內的文本,而不是標記。 – 2010-04-29 11:41:24

    +0

    太棒了,謝謝傑夫。 – Abs 2010-04-29 19:26:17

    2

    你在這裏做什麼$("#path"+i+"_status:contains('!=')")選擇與ID的元素,包含'!='

    你可以做類似

    if($("#path"+i+"_status:contains('!=')").length > 0) 
    

    if($("#path"+i+"_status").text().indexOf("!=") != -1) 
    

    這不是測試,但應該給你的基本理念。

    *編輯 - 請參閱Jeff's answer以瞭解第一個示例的工作原理。

    0

    它可能是更容易使用,而不是ID類:

    $('.status:contains("!=")').each(function(){ 
        alert($(this).text()); 
    }) 
    
    +0

    儘管使用該類更容易,但如果有可用的話,則應始終使用一個ID - 以提高速度和效率。 (這在當代瀏覽器中絕對重要!) – 2010-04-28 17:29:38

    相關問題