.prop()vs .attr()

.prop()vs .attr()

所以jQuery 1.6具有新功能prop()

$(selector).click(function(){
    //instead of:
    this.getAttribute('style');
    //do i use:
    $(this).prop('style');
    //or:
    $(this).attr('style');})

或者在这种情况下,他们做同样的事情?

如果我有转用prop(),所有的旧attr()电话,如果我切换到1.6将打破?

UPDATE

selector = '#id'


$(selector).click(function() {

    //instead of:

    var getAtt = this.getAttribute('style');

    //do i use:

    var thisProp = $(this).prop('style');

    //or:

    var thisAttr = $(this).attr('style');


    console.log(getAtt, thisProp, thisAttr);

});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>

<div id='id' style="color: red;background: orange;">test</div>

控制台会记录getAttribute作为一个字符串,并attr作为一个字符串,但prop作为一个CSSStyleDeclaration,为什么?这对我未来的编码有何影响?



慕虎7371278
浏览 540回答 3
3回答

慕侠2389804

面对预测的一堆破碎的网站,jQuery团队恢复attr()了与布尔属性的旧行为接近(但不完全相同)的东西。John Resig也在博客上写了这篇文章。我可以看到他们遇到的困难,但仍然不同意他的偏好建议attr()。
打开App,查看更多内容
随时随地看视频慕课网APP