如何提取以前的标签文本

时间:2012-04-02 23:45:34

标签: jquery html css

我正在使用.prev('label')从标签中获取以前的文字,但我怎样才能从标签中获取数据或文本两步。

如何从以下代码中获取数据。

HTML:

<tr>
  <td width="25%">Name</td>
  <td width="75%"><input type="text" name="name" id="name" class="requiredField" /></td>
</tr>

使用Javascript:

<script type="text/javascript">
$(document).ready(function() {
    $('form#sponsorshipForm').submit(function() {
        $('form#sponsorshipForm .error').remove();
        var hasError = false;
        $('.requiredField').each(function() {
            if(jQuery.trim($(this).val()) == '') {
                var labelText = $(this).prev('label').text();
                $(this).parent().append('<span class="error">You forgot to enter your '+labelText+'.</span>');
                hasError = true;
            } else if($(this).hasClass('email')) {
                var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
                if(!emailReg.test(jQuery.trim($(this).val()))) {
                    var labelText = $(this).prev('label').text();
                    $(this).parent().append('<span class="error">You entered an invalid '+labelText+'.</span>');
                    hasError = true;
                }
            }
        });
        if(!hasError) {
            $('form#sponsorshipForm li.buttons button').fadeOut('normal', function() {
                $(this).parent().append('<img src="/wp-content/themes/td-v3/images/template/loading.gif" alt="Loading&hellip;" height="31" width="31" />');
            });
            var formInput = $(this).serialize();
            $.post($(this).attr('action'),formInput, function(data){
                $('form#contactForm').slideUp("fast", function() {                 
                    $(this).before('<p class="thanks"><strong>Thanks!</strong> Your email was successfully sent. I check my email all the time, so I should be in touch soon.</p>');
                });
            });
        }

        return false;

    });
});
</script>

我如何提取&#34; 名称&#34;因为我这里没有使用标签。

谢谢

1 个答案:

答案 0 :(得分:-1)

停止尝试做奇怪的.prev()并获取这样的文字。只需将文本添加为​​自定义属性,如<input type="" custom-text="Name" />或....将完整的对象数据添加到javascript字典中,并通过输入的ID或名称引用它以获取其他详细信息,如此...

var a = {};

a["name"] = { name: "Name" }

function getData( which )
{
    return a[which];
}

......类似的东西....但请不要在html上走来走去。