2011-05-02 76 views
0

我已经尝试了多种方法,但我无法正确理解它。
我有多个列表项,并在他们几个我有<span class="required">*</span>无法使用jQuery获取<span>的内容

我需要检查input.brand name具有价值。如果不是,我将用消息更改范围的内容。

为了测试,我有以下代码:

jQuery('#brand_btn_saveForm').live('click', function() { 
     alert(jQuery('#brand_name').parent().find('.required').text()); 
    }); 

这应该输出*,但我只得到一片空白。

部分OG的HTML代码是这样的:

<li> 
    <label class="description" for="brand_name">Name<span class="required">*</span></label> 
    <div> 
     <input id="brand_name" name="brand_name" class="text textfield50pc" type="text" maxlength="40" value="<?php echo $name; ?>"/> 
    </div> 
    </li> 

有什么建议?

+2

在您的html代码中看不到brand_email的id,更不用说span.required了。 – 2011-05-02 21:45:38

+0

对不起,错字。但他们都得到了'要求'的范围。 – Steven 2011-05-02 21:49:31

回答

2

呼吁<input>返回<div>parent(),而你想要的<li>为了能够找到<span class="required">。您需要改为closest('li')

alert(jQuery('#brand_name').closest('li').find('.required').text()); 

至于功能要求,我建议看看jQuery Validation plugin

+0

啊!我应该看到这一点。仍然没有掌握所有的功能。谢谢:) – Steven 2011-05-02 21:51:07

+0

还有一件事。为什么我不能使用'nearest'来找到'span'? – Steven 2011-05-02 21:54:17

+1

因为''不在''内。 'nearest()'找到与给定选择符匹配的最接近的父对象。 http://api.jquery.com/closest/ – BalusC 2011-05-02 22:01:28