2012-06-08 56 views
1

我想知道它是如何或是否有可能在一個Ajax請求使用選擇使用jQueryjQuery的負載使用選擇

我想實現的,是這樣的

$(".classname").load("something.html $(".classname:contains('some text')").parent()"); 

在換句話說,我想將複雜的選擇器傳遞到請求的頁面,而不僅僅是一個類或一個id。

任何人都可以幫忙,或者這是不可能的嗎?我似乎無法找到任何其他線程,這已經被問到!

+0

你能解釋更深入的使用情況是什麼? – Steve

+0

我不明白爲什麼你需要將選擇器傳遞到請求的頁面...請求的頁面將使用選擇器字符串做什麼? –

+2

你試過了嗎?根據文檔:'如果字符串中包含一個或多個空格字符,則第一個空格後面的字符串部分被假定爲一個jQuery選擇器,用於確定要加載的內容。' @Khôi見http://api.jquery.com/load/#loading-page-fragments – Thomas

回答

4

你可以使用.get代替如果選擇是複雜的。

$.get("something.html", function(data){ 
    $(".classname").html($(".classname:contains('some text')", data).parent().html()); 
}, "html"); 
+0

這工作得很好 - 正是我所期待的。非常感謝:)我仍然是一個新手,所以你能解釋一下數據參數的作用嗎? – afcdesign

+0

數據是'something.html'的內容,responseText。 – xdazz

3

.load假定URL後面的空格後面的文本是選擇器。它必須是textual selector。您不小心在字符串中包含了JavaScript等價物。試試這個:

$('.classname').load('something.html .classname:contains("some text"):parent'); 
+0

:家長不會選擇家長,但只會減少設置爲父母的元素。 – Thomas

+0

好的,這個功能幾乎和預期一樣,除了:parent部分 - 我只能得到包含我正在尋找的文本的類名,而不是父類! – afcdesign

+0

@afcdesign你可以使用:has(看我的回答) – Thomas

2
$('.classname').load('something.html *:has(.classname:contains("some text"))') 
+0

好的 - 這個效果很好!謝謝:) – afcdesign

+0

我是新來的stackoverflow - 我可以接受兩個答案? :) – afcdesign

+0

@afcdesign編號[這篇文章在元可能會幫助](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。順便說一下,歡迎來到StackOverflow。 –