首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >面向对象的程序设计问题

问面向对象的程序设计问题
EN

Stack Overflow用户
提问于 2011-05-11 03:11:09
回答 7查看 345关注 0票数 2

为了清空表格单元格的内容,我发出以下命令:

代码语言:javascript
复制
$('td').empty()

但是要清空输入字段的内容,我会说:

代码语言:javascript
复制
$('input').val() -- Edit: .val('')

问:这不是违背了面向对象编程的思想吗?难道你不会对每个人都有相同的方法吗?这意味着“无论你需要做什么来清空自己,你现在都可以这样做了”?

比如,如果你有一台cat.speak和一台dog.speak,猫叫狗叫。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-05-11 03:14:58

请记住,这些操作做的是两件截然不同的事情。

  • empty正在从目标element(s).
  • val中删除HTML内容正在设置表单元素的值,至少当它与参数一起使用时是这样。

所以我认为指定两个不同名称的函数是很好的。

无论如何,jQuery是以原型/函数风格编写的,而不是OO,但这不会改变您最初的问题。

票数 2
EN

Stack Overflow用户

发布于 2011-05-11 03:12:37

1: jQuery是,不是 OOP,也从未声称是

2:$('input').val()只返回输入的值,不会将其输出( empty

3:$('td').empty()删除html内容。它不是用来“清空”任何输入元素的,要清空一个输入,你可以这样做:$('input').val('')

票数 7
EN

Stack Overflow用户

发布于 2011-05-11 03:14:15

删除HTML content和将值设置为null的令人困惑。

永远不要从输入中移除文本内容。浏览器会为您删除它,因为它是数据绑定的。

$("input").val("")不会清空输入。

.val("")从输入中删除文本内容的事实仅仅是一个副作用,即输入字段中的文本是数据绑定到<input>的value属性。

你的概括太多了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5955160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档