2014-05-20 137 views
-4

下面的這個函數在按下按鈕時將學生的名字添加到名爲'output'的div的鏈接中。jQuery/Javascript if if contains else else

function getFavourite() 
{ 
{ 
name = 'Student 1 ' 
    $('#output').html('<a href=' + window.location.href + '?student=' + '>' + name + '</a>'+ ', ' + ($("#output").html())); 
} 


saveFavourites(); 
loadFavourites(); 
$("#favourites").show(); 
} 

我試圖創造一個如果學生的名字已經在div那麼當再按下按鈕的名稱不會被再次添加和顯示警告通知用戶更多的功能。

function getFavourite() 
{ 
if ($("#output:not:contains('Student 1, ')")) 
    {(name = 'Student 1 ') 
    $('#output').html('<a href=' + window.location.href + '?student=' + '>' + name + a>'+ ', ' + ($("#output").html())); 
     $("#favourites").show(); 
    } 
else 
{return null + alert("Already added to favourites")} 


saveFavourites(); 
loadFavourites(); 

} 

我已經嘗試了很多上面的代碼的變體,但沒有運氣。 謝謝。

+0

在編寫HTML時,您是否可以提供帶有學生姓名的錨點作爲ID,然後在嘗試添加新的錨點時檢查是否有任何錨點具有該ID? –

+1

'$(「#output:not(:contains('Student 1,')」))''會返回一個永遠爲真的jQuery對象 –

回答

0

您可以通過檢查其長度檢查,例如:

if ($("#container:contains('Test')").length > 0) { 
    alert("It does contain"); 
} else { 
    alert("It does not contain"); 
} 

jsfiddle demo here

+0

感謝您的迴應,它幫助了我。 – perfectDisguise

+0

如果你可以使用這個答案,請注意它。 –

+0

{if($(「#output:contains('Student 1')」)。length> 0){ + alert(「已添加到收藏夾」) }我可以在警報前放什麼,沒有添加任何東西到div – perfectDisguise

0

使用[HREF * = 「字符串」]選擇,這裏一點fiddel http://jsfiddle.net/6KuP4/3/

html

<a href="url?student=Student 1">test</a> 
<a href="url?student=Student 2">test</a> 

css

a { 
    display:block; 
} 
a[href*="Student 1"] { 
    color: #1f6053; /* Student 1 is green */ 
} 

因此,在您的jQuery,你可以在你的statment該選擇(可能是學生1將變量替代)

的js

$('#output > a[href*="' + name + '"]') 

這裏小提琴http://jsfiddle.net/686xA/26/

如果您檢查需要檢查只有最後一部分或你的網址,嘗試使用[href $ =「+ name +」](小提琴http://jsfiddle.net/jSb3P/4/