这是我的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
当我单击复选框时,它应显示所有输入的名称:类型。但它说“未定义”。
请帮帮我。
答案 0 :(得分:7)
使用它 这个没有“”
alert($(this).attr("name"));
答案 1 :(得分:4)
答案 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'
。