这是我的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
当我点击复选框时,它应该显示所有输入类型的名称。但是它显示"undefined"
请帮帮我。
使用这个
alert($(this).attr("name"));
应该是:
alert($(this).attr("name"));
this
不带单引号
最好的方法是直接使用节点属性名,这里根本不需要使用jquery:
alert(this.name);
$("#onepagecheckout_orderform input:text").each(function() {
console.log($(this));
alert($(this).attr('name'));
});
$
函数可以接受许多不同的参数。如果你给它一个DOM对象(比如this
),那么它将用jQuery
对象包装它。
如果你传递给它一个字符串(看起来不像HTML),那么它将把它作为一个选择器,在DOM中搜索匹配的元素,并在它们周围包装一个jQuery
对象。
你传递给它一个字符串,所以它会找到所有的<this>
元素(没有任何,不能在HTML文档中)。
你想传递this
,而不是'this'
。