2014-01-31 69 views
0

存在元件I具有的代码块,看起来像这样:检查是否与jQuery

//Account Number 
     account = $(msg).find('[name=account_number]').val(); 

     if(account){ 
      $('#progressUpdates').append('<span class="glyphicon glyphicon-ok"></span>&nbsp;&nbsp;Found Account Number<br />'); 
     }else{ 
      $('#progressUpdates').append('<span class="glyphicon glyphicon-remove"></span>&nbsp;&nbsp;Account Number not found<br />'); 
     } 

的问题是,如果被分配到帐户中的元件不存在,它会引发错误。我试着做:

if(account.length){} 

但问题不在于if语句,它的赋值变量。有更好的解决方案吗?

+0

当前的代码应该工作。 'val()'返回'undefined'是它所调用的元素不存在。的 – techfoobar

+1

可能重复[是否有一个“存在”功能的jQuery?](http://stackoverflow.com/questions/31044/is-there-an-exists-function-for-jquery) – undefined

+0

你尝试过的typeof帐户! =='未定义'? – euther

回答

3

不要叫val()

account = $(msg).find('[name=account_number]');

和焯芬长度 -

if(account.length){

+0

我需要的元素的值虽然。 – SBB

+0

@SBB当然...如果存在,你可以调用val(),对吧? –

+0

似乎比需要更多的代码,但我想如果多数民众赞成在唯一的方法 – SBB

1

,而不是这样的:

account = $(msg).find('[name=account_number]'); 

尝试删除.val()

account = $(msg).find('[name=account_number]'); 

好,那么你必须在检查长的,如果:

if(account.length){ 

,或者如果你想从它的值由安东的建议:

account.val() 
+0

这将告诉我,它发现的元素,但我需要它的价值以及。 – SBB