$(“this”)。attr(“name”)到undefined

时间:2013-06-03 10:10:23

标签: jquery html

这是我的HTML:

<form action="" id="onepagecheckout_orderform">
<input type="text" id="billing:firstname" name="billing[firstname]" value="" title="First Name" class="t1 required-entry"/>
<input type="text" id="billing:lastname" name="billing[lastname]" value="" title="Last Name" class="t1 required-entry"/>
<br/>
<input type="checkbox" class="" name="shipping[clone]" id="shippingClone" title="Clone"/>
<label for="shippingClone">Ship to same address</label>

jQuery是:

$(document).ready(function () {
    function cloneMe() {
        $("#onepagecheckout_orderform input:text").each(function () {
            alert($('this').attr("name"));
        });
        return false;
    };
    $('#shippingClone').on('click', function () {
        cloneMe();
    });
});

jsfiddle链接是:here

当我单击复选框时,它应显示所有输入的名称:类型。但它说“未定义”。

请帮帮我。

5 个答案:

答案 0 :(得分:7)

使用它 这个没有“”

alert($(this).attr("name"));

答案 1 :(得分:4)

应该是:

alert($(this).attr("name"));

this没有单引号。

答案 2 :(得分:3)

最好的方法是使用节点属性名称,这里根本不需要使用jquery:

alert(this.name);

答案 3 :(得分:1)

$("#onepagecheckout_orderform input:text").each(function() {
                        console.log($(this));
                        alert($(this).attr('name'));
                    });

答案 4 :(得分:0)

$函数可以使用许多不同的参数。如果你给它一个DOM对象(比如this)那么它将用jQuery对象包装它。

如果你传递一个字符串(看起来不像是一段HTML),那么它会把它当作一个选择器,在DOM中搜索匹配的元素,并在它们周围包裹一个jQuery对象。 / p>

您正在传递一个字符串,因此它将找到所有<this>元素(不存在任何元素,也不能存在于HTML文档中)。

您想要传递this,而不是'this'