我正在尝试收听“按钮”和“a”点击,然后将属性“name”的值传递给变量,我找不到我的代码有什么问题:
$('a').click(function() {
var anchor;
anchor=$(this).attr('name');
$('#linkPressed').val(anchor);
});
$('button').click(function() {
var anchor;
anchor=$(this).attr('name');
$('#linkPressed').val(anchor);
});
更新:我有一个PHP脚本根据“linkPressed”值执行不同的操作。看起来,此代码也适用于没有<a>
属性的<button>
和"name"
,这会破坏我的脚本。有没有办法从“点击监听器”中排除没有"name"
属性的对象?
答案 0 :(得分:2)
您可以使用逗号,
分隔选择器。它可能无法正常工作,因为您已经两次初始化anchor
变量:
$('a, button').click(function() {
var anchor;
anchor=$(this).attr('name');
$('#linkPressed').val(anchor);
});
答案 1 :(得分:2)
要仅选择具有属性name
的元素,请使用attribute selector:
$('a[name], button[name]').click(...);
// or
$('a, button').filter('[name]').click(...);
答案 2 :(得分:2)
您只能将处理程序绑定到具有name
属性的元素:
$('a[name], button[name]').click(function() {
$('#linkPressed').val(this.name);
}
答案 3 :(得分:1)
,
一次使用多个选择器删除重复代码
可能#linkPressed
是一种标签类型,而不是当时在text()
宫殿使用val()
的输入类型
$('a,button').click(function() {
var anchor;
anchor=$(this).attr('name');
$('#linkPressed').val(anchor);
});
答案 4 :(得分:1)
我认为就是这样。
$("a, button").click(function() {
var anchor;
if($(this).attr("name") != undefined) {
anchor=$(this).attr('name');
$('#linkPressed').val(anchor);
}
});