2013-01-03 43 views
0

我有一個數組'name'。我需要檢查這個數組中的元素是否存在於html中的列表中。檢查li是否包含指定的字符串

在PHP中的代碼如下:

foreach ($name as $value2) { 
    echo "<script> 
    if($('li:not(:contains(\"".$value2."\"))')) 
    { 
     alert('".$value2." does not exists'); 
    } 
    else 
    { 
     alert('".$value2." exists'); 
    } 
    </script>"; 
} 

但我收到警報的值不會對每一個元素存在。

+0

請添加說明文字。 –

+3

字符串'li:not(:contains(\「」。$ value2。「\」))'總是真的;我懷疑你打算把它包裝在$(...)中。 – Odalrick

+0

也可以在'$ value2'和'json_encode'周圍放置引號。這是更安全 – mpen

回答

0

您可以使用PHP數組:

<?php 
$os = array("Mac", "NT", "Irix", "Linux"); 
if (in_array("Irix", $os)) { 
    echo "Got Irix"; 
} 
if (in_array("mac", $os)) { 
    echo "Got mac"; 
} 
?> 

reference

你可以嘗試這樣的:

<?php foreach ($name as $value2) { ?> 
<script> 
    if($('li:not(:contains(\"" <?php echo $value2; ?>"\"))')) 
    { 
     alert('"<?php echo $value2; ?>" does not exists'); 
    } 
    else 
    { 
     alert('"<?php echo $value2; ?>" exists'); 
    } 
    </script> 
<?php } ?> 
+0

如何找到頁面上的LI? – mplungjan

+0

您可以使用jQuery –

+0

Surinder的解決方案是正確的。當你在PHP中輸出時,你不會用javascript來做這件事,而使用它可以更容易地檢查你想要的東西。 – Popnoodles

0

假設你不能測試對的HTML內容服務器(例如ajax之後),這不是一個好習慣創建

<script> 
. 
</script> 
<script> 
. 
</script> 
<script> 
. 
</script> 

時,你可以做

$jsString = implode("','", $array); 
$jsString = "'".$jsString."'"; 
?> 
<script> 
var vals = [<? echo $jsString; ?>]; 
var contains =[],notContains=[],liContains=[]; 
$.each(vals,function(i,val) { 
    var li = $('li:contains("'+val+'")'); 
    if (li) { 
    contains.push(val); // all vals presents 
    liContains.push(li); // all (sets of) LIs with the vals 
    } 
    else { 
    notContains.push(val); // all vals not present 
    } 
}); 
alert(contains.length); 
</script> 
相關問題