当前位置: 首页 > 面试题库 >

jQuery attr vs道具?

岳迪
2023-03-14
问题内容

现在,这不仅仅是另一个 问题了。我修改了propattr<formaction="/test/"></form>​ 输出为:

1)道具修改测试
道具:http://fiddle.jshell.net/test/1
属性:http://fiddle.jshell.net/test/1

2)属性修改测试
属性:http://fiddle.jshell.net/test/1
属性:/test/1

3)属性然后进行道具修改测试
属性:http://fiddle.jshell.net/test/11
属性:http://fiddle.jshell.net/test/11

4)属性然后进行属性修改测试
属性:http://fiddle.jshell.net/test/11
属性:http://fiddle.jshell.net/test/11

现在,就我所知,我对两件事感到困惑:
道具: 通过JavaScript进行任何修改后的当前状态
值: 网页加载时html中定义的值。

现在,如果这是正确的,

  • 为什么修改prop似乎可以使条件action完全合格,反之为什么不修改属性呢?
  • 为什么修改propin 1)修改属性,那对我没有意义?
  • 为什么修改attrin会2)修改属性,它们是要以这种方式链接?

HTML

JavaScript

var element = $('form');
var property = 'action';

/*You should not need to modify below this line */

var body = $('body');
var original = element.attr(property);

body.append('<h1>Prop Modification test</h1>');
element.prop(property, element.prop(property) + 1);

body.append('Prop: '+element.prop(property)+'<br />');
body.append('Attr: '+element.attr(property)+'<hr />');

//reset
element.prop(property, original);
element.attr(property, original);

body.append('<h1>Attr Modification test</h1>');
element.attr(property, element.attr(property) + 1);

body.append('Prop: '+element.prop(property)+'<br />');
body.append('Attr: '+element.attr(property)+'<hr />');

//reset
element.prop(property, original);
element.attr(property, original);

body.append('<h1>Attr then Prop Modification test</h1>');
element.attr(property, element.attr(property) + 1);
element.prop(property, element.prop(property) + 1);

body.append('Prop: '+element.prop(property)+'<br />');
body.append('Attr: '+element.attr(property)+'<hr />');

//reset
element.prop(property, original);
element.attr(property, original);

body.append('<h1>Prop then Attr Modification test</h1>');
element.prop(property, element.prop(property) + 1);
element.attr(property, element.attr(property) + 1);

body.append('Prop: '+element.prop(property)+'<br />');
body.append('Attr: '+element.attr(property)+'<hr />');

问题答案:

不幸的是,您的链接均无效:(

不过,有些洞察力attr适用于所有属性。prop用于属性。

在旧版jQuery(<1.6)中,我们只有attr。要获取nodeName,,等DOM属性selectedIndexdefaultValue您必须执行以下操作:

var elem = $("#foo")[0];
if ( elem ) {
  index = elem.selectedIndex;
}

糟透了,所以prop添加了:

index = $("#foo").prop("selectedIndex");

这很棒,但是令人讨厌的是它不向后兼容,因为:

<input type="checkbox" checked>

没有属性checked,但确实有一个名为的属性checked

因此,在1.6的最终版本attr中也这样做,prop以确保事情不会中断。有些人希望这是一个彻底的休息,但是我认为做出正确的决定是因为事情并没有到处蔓延!

关于:

属性:通过JavaScript进行任何修改后的当前状态值

属性:页面加载时html中定义的值。

这并不总是正确的,因为实际上实际上已经更改了许多次,但是对于诸如checked之类的属性,没有要更改的属性,因此您需要使用prop。



 类似资料:
  • 本节暂未进行完全的重写,错误可能会很多。如果可能的话,请对照原文进行阅读。如果有报告本节的错误,将会延迟至重写之后进行处理。 Breakout已经接近完成了,但我们可以至少再增加一种游戏机制让它变得更酷。“充电”(译注:Powerups,很多游戏中都会用这个单词指代可以提升能力的道具,本文之后也会用道具一词作为其翻译)怎么样? 这个想法的含义是,无论一个砖块何时被摧毁,它都有一定几率产生一个道具块

  • 我试着阅读关于JS和React的书籍和观看视频,但我仍然没有更好地理解React道具

  • 房间中使用到的道具与支付章节中的提及的道具是相同的。 游戏进行时消耗道具。 游戏内进行道具消耗时,如果以帧同步的方式进行消耗。发送至游戏后台后,进行校验,消耗成功后,游戏后台也以帧同步的方式推送至房间内的所有玩家 完整流程代码请看frameSync_demo.js,此处仅列出消耗代码 下例为向后台发送消耗道具帧同步消息 注意点:一帧中仅仅能消耗一个道具

  • 无状态管道是纯粹的功能,通过输入数据流动而不记住任何东西或引起可检测的副作用。 大多数管道是无状态的。 我们使用的CurrencyPipe和我们创建的长度管是无状态管的示例。 状态管道是能够管理它们转换的数据的状态的管道。 创建HTTP请求,存储响应并显示输出的管道是有状态的管道。 有状态管道应谨慎使用。 Angular 2提供 ,这是有状态的。 View Example 实现有状态管道 // n

  • 传递参数 链接管道 我们可以将多个管道连接在一起,以便在一个表达式中使用多个管道。

  • 若你选择售卖道具,需要将游戏内出售的道具上架到hudong.qq,之后可以调用平台提供的道具购买、查询和使用的接口完成相关逻辑。 托管在hudong.qq上面的道具(二级货币本质也是一种道具)需使用点券计价,点券与人民币的价值比例固定为10:1。 Tips:hudong.qq上面对于道具支持的能力有限,为了实现打折,限时购买,限量销售等更为复杂的道具逻辑,建议你自定义二级货币。若你选择自定义二级货

  • 情况: 我想做的事: 问题: 我只能指定一个propType?我如何允许两种不同的道具组合成一种? 谢谢

  • 我有一个和道具同名的守望者。道具是在某个事件的父组件中动态设置的。我需要一些东西,每次在父组件上触发事件时,都会用属性值触发子组件中的某个函数,即使它设置的属性相同。是否有任何观察者选项或其他处理此类案件的方法允许我这样做? 我尝试了什么(这是在组件中): 仅在newVal与oldVal不同时打印,我需要一些函数来触发,即使它们相同。父组件如下所示: 这些是父数据和方法: