2014-05-20 108 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/