2014-05-02 93 views
0

我有這個javascript(jquery),其中我定義了一個變量。這個變量包含一個可能有一個或多個ul的字符串。我希望腳本選擇每個ul併爲它們中的每一個運行一個函數。JS:變量中每個ul的函數

但不幸的是,加載頁面時沒有任何反應。

<script type="text/javascript"> 
    var wid_tekst1 = "<?php echo $wid_tekst1; ?>"; 
    $(wid_tekst1).find('ul').each(function() { 
     alert('hoi'); 
    }) 
</script> 

的$ wid_tekst1包含:

<p>test tekst 1</p> 
<ul> 
    <li>testitem</li> 
    <li>testitem</li> 
    <li>testitem</li> 
    <li>testitem</li> 
    <li>testitem</li> 
    <li>testitem</li> 
    <li>testitem</li> 
</ul> 
<p>test</p> 

謝謝

+3

JavaScript不支持多行字符串。如果你的php變量像你顯示的那樣使用,它將永遠不會工作。 –

+0

@ Karl-AndréGagnon,我只是將它設置爲多行來使其可讀。實際上,這只是一條線。 – Bram

回答

1

由於ul s爲您的收藏中的頂級元素,你應該使用filter而不是find方法。如果你想使用find方法可以設置該字符串作爲另一個元素的innerHTML

$('<div/>').html(wid_tekst1).find('ul').each(func); 
+0

謝謝你的工作!不知道過濾方法。所以要清楚的是,find方法只對定義爲html的變量有效,而filter-method對所有變量都有效?我會在幾分鐘內接受你的答案... – Bram

+0

@ user3235648不客氣,實際上區別在於jQuery集合中元素的級別。 'find'選擇集合元素的匹配後代元素_並且過濾_集合_中的元素。 – undefined