这是该元素在控制台中的样子:
<input type="text" size="20" tabindex="3" id="txtR7163776" name="txtR7163776" selectorviewid="4149027" viewpageid="4877455" class="requiredInput" onfocus="new AutoSuggestControl(this, 4148821, 4149027);" matchfield="name" matchrule="ST" suggtype="rObj" ismultiple="false" autocomplete="off" filtername="R511444" filtervalue="-1">
我正在尝试删除属性filtername
和filtervalue
。
我的代码:
$(document).ready(function(){
var input = $("#txtR7163776");
var attrA = input.attr("filtername");
var attrB = input.attr("filtervalue");
console.log(attrA, attrB);
input.removeAttr("filtername");
input.removeAttr("filtervalue");
});
attrA
和 attrB
通过控制台显示为未定义...我在这里缺少什么?
更新的代码:
$(document).ready(function(){
var input = $("#txtR7163776");
console.log(input.length); //1
var attrA = input.attr("filtername");
var attrB = input.attr("filtervalue");
console.log(attrA, attrB); //showing undefined undefined in the console
input.removeAttr("filtername");
input.removeAttr("filtervalue");
var payroll = $("div[name='Payroll']");
var timekeep = $("div[name='Timekeeping']");
var benefits = $("div[name='Benefits']");
var HRIS = $("div[name='HRIS']");
payroll.hide();
timekeep.hide();
benefits.hide();
HRIS.hide();
console.log("A");
$("select[name='oppty_type']").click(function(){
console.log("B");
var isPay = false;
var isTime = false;
var isBene = false;
var isHris = false;
var isPremium = false;
var isPremiumPlus = false;
payroll.hide();
timekeep.hide();
benefits.hide();
HRIS.hide();
var multi = [];
multi = $("select[name='oppty_type']").val();
console.log(multi);
for(var a = 0; a < multi.length; a++){
if(multi[a] == 4143371){
isPay = true;
}
if(multi[a] == 4143372){
isTime = true;
}
if(multi[a] == 4143370){
isHris = true;
}
if(multi[a] == 7457612){
isBene = true;
}
if(multi[a] == 58318982){
isPremium = true;
}
if(multi[a] == 58318983){
isPremiumPlus = true;
}
}
if(isPay){ //payroll
payroll.show();
}
if(isTime){ //timekeeping
timekeep.show();
}
if(isHris){ //HRIS
HRIS.show();
}
if(isBene){ //Benefits
benefits.show();
}
if(isPremium){ //bundle premium
payroll.show();
timekeep.show();
benefits.show();
}
if(isPremiumPlus){ //bundle premium plus
payroll.show();
timekeep.show();
benefits.show();
HRIS.show();
}
});
});
最佳答案
以下内容将不起作用:
attrA.removeAttr("filtername");
attrB.removeAttr("filtervalue");
因为您在 attrA
和 attrB
上操作它们,它们是 string
。上面的说法大致翻译一下意思就是:
"R511444".removeAttr("filtername");
"-1".removeAttr("filtername");
你必须做:
input.removeAttr("filtername");
input.removeAttr("filtervalue");
但是在控制台中我得到了两个 attr
值:
关于jquery - 为什么 jQuery 显示此属性为未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35465296/