jquery - 为什么 jQuery 显示此属性为未定义?

标签 jquery attributes attr

这是该元素在控制台中的样子:

<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">

我正在尝试删除属性filternamefiltervalue

我的代码:

$(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");
});

attrAattrB 通过控制台显示为未定义...我在这里缺少什么?

更新的代码:

$(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");

因为您在 attrAattrB 上操作它们,它们是 string。上面的说法大致翻译一下意思就是:

"R511444".removeAttr("filtername");
"-1".removeAttr("filtername");

你必须做:

input.removeAttr("filtername");
input.removeAttr("filtervalue");

但是在控制台中我得到了两个 attr 值:

输出:http://jsbin.com/hadukojifi/edit?html,js,console,output

关于jquery - 为什么 jQuery 显示此属性为未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35465296/

相关文章:

jquery - 我想从图像中获取标题属性并将其添加到周围的链接

php - document.ready 页面重新加载

jquery - jquery中分割字符串

jquery - 如何替换/替换属性名称,而不是其内容

Jquery - 确定点击了哪个链接

R:如何从属性设置嵌套列表中的名称

javascript - 动画不工作,使用关键帧,无前缀

javascript - 为选项卡式内容生成随机数据属性

jquery 函数在 Safari 中不起作用?

javascript - 在 Vue.js 中为 div 设置属性