2015-11-05 67 views
0

我(我很確定我)必須使用jQuery作爲我正在創建的頁面的一部分,這基本上是我第一天做jQuery。jQuery - 如何檢查孩子是否存在id = URL?

對於以下if/else,我首先嚐試檢查是否存在具有等於變量url的id的<div>。如果存在,它會將文本寫入div。如果該元素不存在,則else將創建一個新的div,其屬性爲id,文本包含相同的響應,並將其附加到與之關聯的<a href>標記。

Function() { 
    ... 
    ... 
    ... 
    if (xhr.readyState == 4 && xhr.status == 200) { 
     if ($("div#"+url+"").length) { 
      document.getElementById(url).innerHTML = xhr.responseText; 
     } 
     else { 
      $("a[href='" + link + "']").append(
       $("<div></div>", { 
        "id": url, 
        "text": xhr.responseText 
        } 
       ) 
      ); 
     } 
    } 
    ... 
    ... 
} 

如果我做了完善的混亂,這裏是什麼,我希望有發生在HTML DOM的可視化表示。

之前

<a href="http://foo.com" onclick="Function('url')">Foo</a> 

鏈接被點擊後。

<a href="http://foo.com" onclick="Function('url')">Foo</a><div id="http://foo.com">xhr.responseText</div> 

我在控制檯得到的錯誤是 錯誤:語法錯誤,無法識別的表達:DIV#HTTP%3A%2F%2Fwww.foo.com 因爲它說,這是一個語法錯誤,我知道我必須使用.length錯誤,但id的選擇器是#,所以我不明白錯誤在哪裏。我已經做了一大堆探索所有和爲http://api.jquery.com/length/爲jquery語法檢查是否存在一個孩子,我試過使用一些邏輯運算符,但它總是在if語句相同的錯誤。我也嘗試過使用encodeURIComponent(url),以防萬一它不喜歡URL中的一些字符,但是它沒有修復它。

+2

,因爲它包含您不能使用URL作爲HTML ID無效的字符 – dave

+0

,我想編碼的URL並不重要? – JoeL

+0

你可以用相反的方式去談論它。 '$()。closest()'方法將嘗試將選擇器與節點的祖先進行匹配。因此,您可以檢查孩子的身份證是否存在,以及其祖先之一是否與您想要的父母相匹配。 –

回答

2

你的問題讓我困惑,但如果你想看看是否在網頁上存在一個id試試這個

if($('#youId').length){//the object exists}

+0

是的,這正是我想要檢查的。 – JoeL

+0

很酷,很高興我可以幫助 – stackoverfloweth

+0

如果我正確地閱讀,你只是說拿出我在div#youId中的「div」。我已經做到了,也沒有效果。 – JoeL