2

这是我的 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 链接是:这里

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

请帮帮我。

4

5 回答 5

7

用这个没有“”

alert($(this).attr("name"));
于 2013-06-03T10:11:49.180 回答
4

它应该是:

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

this没有单引号。

于 2013-06-03T10:11:03.470 回答
3

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

alert(this.name);
于 2013-06-03T10:13:31.563 回答
1
$("#onepagecheckout_orderform input:text").each(function() {
                        console.log($(this));
                        alert($(this).attr('name'));
                    });
于 2013-06-03T10:12:49.580 回答
0

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

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

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

你想通过它this,不是'this'

于 2013-06-03T10:13:21.980 回答