2012-07-18 80 views
0

我正在嘗試在文檔中查找html代碼的確切副本。在html文檔中查找確切的html代碼片段

我已經試過

$("#tabs-1").find('div:contains(a)').html() 

HTML:

<div class="appointment" data-status="yes"> 
    <a class="app">Yuri G.</a> 
</div> 

jQuery的是否爲此提供的任何功能或做我必須使用正則表達式?

更新:我有多個div與類約會,具有相同的屬性在不同的div容器元素。我試圖通過拖放將它們複製到另一個地方。我想確保該副本不存在於拖放位置

+0

你能發佈更多的代碼並解釋你想要檢索的代碼的哪部分? – davidbuzatto 2012-07-18 05:39:14

+0

你似乎有太多'''字符,或不足'<'字符。 – 2012-07-18 05:39:48

回答

1

:contains是文本,請嘗試使用:has代替。

$("#tabs-1").find('div:has(a)').html() 

或者,如果你想整個DIV作爲一個字符串,你需要使用outerHTML

$("#tabs-1").find('div:has(a)').prop('outerHTML') 

DEMO:http://jsfiddle.net/SupSA/

+0

謝謝@rocket,但結果相同 – manoj 2012-07-18 05:45:18

+0

@manoj:你是什麼意思「同樣的結果」?你想要什麼結果? – 2012-07-18 05:46:35

+0

同樣的結果,當我運行我上面發佈的查詢... – manoj 2012-07-18 05:50:18

1

您不能使用:contains查找HTML,僅查找文本。

您應該使用DOM搜索,而不是文本搜索。此代碼可讓您獲取<a>標籤中的確切文字。然後,您可以比較文字,看它是否就是你要找的人:

$("#tabs-1").find(".appointment[data-status='yes'] a.app").text(); 

,將讓你的約會格,從中可以讓你從需要任何其他。根據你在HTML領域中真正想要找到的內容,可以調整上面的內容來獲得它。

如果有多個預約的div,那麼你可以找到一個具有所需的文本,像這樣:

$("#tabs-1").find(".appointment[data-status='yes'] a.app:contains(Yuri G.)") 
+0

我有$("#tabs-1").find(".appointment[data-status='yes']")的多個副本,因此需要匹配內部文本和html以查找確切的副本 – manoj 2012-07-18 05:42:57

+0

請描述您嘗試解決的真正問題。另外,我希望你沒有多個'#tabs-1'對象,因爲這是非法的HTML。一旦你有所需的約會對象,你可以使用JS來查看文本是否符合你的要求。這裏的要點是你應該使用DOM工具,而不是HTML文本匹配。 – jfriend00 2012-07-18 05:44:02

+0

我有不同div div容器元素中具有相同屬性的類約會的多個div。我試圖通過拖放將它們複製到另一個地方。我想確保該副本不存在於拖放位置。感謝您的幫助.. – manoj 2012-07-18 05:49:21