如何使用aspen模拟三元精馏TM 软件模拟完成精馏的设计和控制

问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
&input type='button' id='abc' value='-' title='测试1' onclick='abc()'&
$(document).ready(function(){
function abc(){
alert(1111)
Uncaught ReferenceError abc function is not defined 错误提示
在$(document).ready(function(){})中不能调用。但是将方法写在外面即可调用
&input type='button' id='abc' value='-' title='测试1' onclick='abc()'&
function abc(){
alert($("#abc").val())
能够弹出val值
====================================
**那么js和jquery混着在一起了。这样写会有什么问题?
$("#abc").val() 和原生的JavaScript 和区别在哪里?
这个问题已被关闭,原因:
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
在$(document).ready(function(){})中不能调用,但是将方法写在外面即可调用。原因很简单。因为当你把abc写在那个作为ready的参数的匿名函数里的时候,abc这个变量的作用域也仅限于那个匿名函数里。那个匿名函数之外自然无法使用 abc 这个变量。
至于第二个问题。无非就是调用 jQuery 这个 library 的 $ 方法 和 val 方法而已。jQ 对这两个函数的实现无非也就是再去 call 原始的 JavaScript DOM 方法。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
在ready里写的都是控件绑定函数
$(document).ready(function(){
$("#abc").click(function(){
alert("helloworld") ;
当文档对象模型已经加载,并且页面已经完全呈现时,触发 ready 事件,然后里面的控件函数严正以待,一旦有控件响应里面的函数,即执行。
像你这样混合调用,外面调用是进不去的。
js是脚本语言,jq是js之上的框架
这个问题已经被关闭无法回答
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
扫扫下载 AppJavaScript中5种调用函数的方法
投稿:junjie
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了JavaScript中5种调用函数的方法,本文详细的介绍了Javascript中各种函数调用的方法及其原理,对于理解JavaScript的函数有很大的帮助,需要的朋友可以参考下
这篇文章详细的介绍了Javascript中各种函数调用的方法及其原理,对于理解JavaScript的函数有很大的帮助!
JavaScript,调用函数的5种方法
一次又一次的,我发现,那些有bug的Javascript代码是由于没有真正理解Javascript函数是如何工作而导致的(顺便说一下,许多那样的代码是我写的).JavaScript拥有函数式编程的特性, 当我们选择面对它的时候,这将成为我们前进的阻碍.
作为初学者,我们来测试五种函数调用的方法,从表面来看我们会认为那些函数与C#中函数的作用非常相似,但是我们一会儿可以看到还是有非常重要的不同的地方的,忽视这些差异无疑会导致难于跟踪的bug。首先让我们创建一个简单的函数,这个函数将在将在下文中使用,这个函数仅仅返回当前的this的值和两个提供的参数.
&script type="text/javascript"&
function makeArray(arg1, arg2){
&&& return [ this, arg1, arg2 ];
最常用的方法,但不幸的,全局的函数调用
当我们学习Javascript时,我们了解到如何用上面示例中的语法来定义函数。
,我们也知道调用这个函数非常的简单,我们需要做的仅仅是:
makeArray('one', 'two');
// =& [ window, 'one', 'two' ]
Wait a minute. What's that window
alert( typeof window.methodThatDoesntExist );
// =& undefined
alert( typeof window.makeArray);
window.makeArray('one', 'two');
// =& [ window, 'one', 'two' ]
我说最普遍的调用方法是不幸的是因为它导致我们声明的函数默认是全局的.我们都知道全局成员不是编程的最佳实践.这在JavaScript里是特别的正确,在JavaScript中避免使用全局的成员,你是不会为之后悔的.
JavaScript函数调用规则1
在没有通过明确所有者对象而直接调用的函数中,如myFunction(),将导致this的值成为默认对象(浏览器中的窗口)。
让我们现在创建一个简单的对象,使用 makeArray函数作为它的一个方法,我们将使用json的方式来声明一个对象,我们也来调用这个方法
//creating the object
var arrayMaker = {
&&& someProperty: 'some value here',
&&& make: makeArray
//invoke the make() method
arrayMaker.make('one', 'two');
// =& [ arrayMaker, 'one', 'two' ]
// alternative syntax, using square brackets
arrayMaker['make']('one', 'two');
// =& [ arrayMaker, 'one', 'two' ]
看到这里的不同了吧,this的值变成了对象本身.你可能会疑问原始的函数定义并没有改变,为何它不是window了呢.好吧,这就是函数在JSavacript中传递的方式,函数在JavaScript里是一个标准的数据类型,确切的说是一个对象.你可以传递它们或者复制他们.就好像整个函数连带参数列表和函数体都被复制,且被分配给了 arrayMaker里的属性make,那就好像这样定义一个 arrayMaker:
var arrayMaker = {
&&& someProperty: 'some value here',
&&& make: function (arg1, arg2) {
&&&&&&& return [ this, arg1, arg2 ];
JavaScript函数调用规则2
在一个使用方法调用语法,像 obj.myFunction()或者 obj['myFunction'](),这时this的值为obj
这是事件处理代码中bug的主要源头,看看这些例子
&input type="button" value="Button 1" id="btn1"& /&
&input type="button" value="Button 2" id="btn2"& /&
&input type="button" value="Button 3" id="btn3"& onclick="buttonClicked();"/&
&script type="text/javascript"&
function buttonClicked(){
&&& var text = (this === window) ? 'window' : this.
&&& alert( text );
var button1 = document.getElementById('btn1');
var button2 = document.getElementById('btn2');
button1.onclick = buttonC
button2.onclick = function(){&& buttonClicked();&& };
点击第一个按钮将会显示”btn”因为它是一个方法调用,this为所属的对象(按钮元素) 点击第二个按钮将显示”window”因为 buttonClicked是被直接调用的(不像 obj.buttonClicked().) 这和我们第三个按钮,将事件处理函数直接放在标签里是一样的.所以点击第三个按钮的结果是和第二个一样的.
使用像jQuery的JS库有这样的优点,当在jQuery里定义了一个事件处理函数,JS库会帮助重写this的值以保证它包含了当前事件源元素的引用,
//使用jQuery
$('#btn1').click( function() {
&&& alert( this.id ); // jQuery ensures 'this' will be the button
jQuery是如何重载this的值的呢?继续阅读
另外两个:apply()和call()
你越多的使用JavaScript的函数,你就越多的发现你需要传递函数并在不同的上下文里调用他们,就像Qjuery在事件处理函数里所做的一样,你往往经常需要重置this的值.记住我告诉你的,在Javascript中函数也是对象,函数对象包含一些预定义的方法,其中有两个便是apply()和call(),我们可以使用它们来对this进行重置.
var gasGuzzler = { year: 2008, model: 'Dodge Bailout' };
makeArray.apply( gasGuzzler, [ 'one', 'two' ] );
// =& [ gasGuzzler, 'one' , 'two' ]
makeArray.call( gasGuzzler,& 'one', 'two' );
// =& [ gasGuzzler, 'one' , 'two' ]
这两个方法是相似的,不同的是后面的参数的不同,Function.apply()是使用一个数组来传递给函数的,而Function.call()是将这些参数独立传递的,在实践中你会发现apply()在大多数情况下更方便.
JSavacript函数调用规则3
如果我们想在不复制函数到一个方法而想重载this的值的时候,我们可以使用 myFunction.apply( obj ) 或 myFunction.call( obj ).
我不想深入研究在Javascript中类型的定义,但是在此刻我们需要知道在Javascript中没有类,而且任何一个自定义的类型需要一个初始化函数,使用原型对象(作为初始化函数的一个属性)定义你的类型也是一个不错的主义,让我们来创建一个简单的类型
//声明一个构造器
function ArrayMaker(arg1, arg2) {
&&& this.someProperty = 'whatever';
&&& this.theArray = [ this, arg1, arg2 ];
// 声明实例化方法
ArrayMaker.prototype = {
&&& someMethod: function () {
&&&&&&& alert( 'someMethod called');
&&& getArray: function () {
&&&&&&& return this.theA
var am = new ArrayMaker( 'one', 'two' );
var other = new ArrayMaker( 'first', 'second' );
am.getArray();
// =& [ am, 'one' , 'two' ]
一个非常重要并值得注意的是出现在函数调用前面的new运算符,没有那个,你的函数就像全局函数一样,且我们创建的那些属性都将是创建在全局对象上(window),而你并不想那样,另一个话题是,因为在你的构造器里没有返回值,所以如果你忘记使用new运算符,将导致你的一些变量被赋值为 undefined.因为这个原因,构造器函数以大写字母开头是一个好的习惯,这可以作为一个提醒,让你在调用的时候不要忘记前面的new运算符.
带着这样的小心,初始化函数里的代码和你在其他语言里写的初始化函数是相似的.this的值将是你将创建的对象.
Javascript函数调用规则4
当你将函数用作初始化函数的时候,像MyFunction(),Javascript的运行时将把this的值指定为新建的对象.
我希望理解各种函数调用方式的不同会使你的Sjavacript代码远离bugs,有些这样的bug会确保你总是知道this的值是避免他们第一步。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具jQuery中10个非常有用的遍历函数
使用jQuery,可以 很容易的选择HTML元素。但有些时候,在HTML结构较为复杂时,提炼我们选择的元素就是一件麻烦的事情。在这篇教程中,我们将探讨十种方 法去精炼和扩展我们将要操作的集合。
首先,让我们看看下图所示的简单的页面,通过这个教程我们将选择这些元素。
div.container是包裹元素;
div.photo、div.title、div.rating是div.container的直接子级;
每个div.star是div.rating的子级;
当div.satr的class为&on&时, 它是一个完整的star。
为什么要遍历?
&为什么我们要进一步提炼一系 列元素,难道是jQuery选择语法不够 强大?&
好,让我们从示例开始。在上面提到的网页中,当一个star被 点击时,我们需要给它以及左边的每个star添加class&on&。与此同时,我们要改变所有star父元素的背景颜色,因此,我们的代码如下:
$('.star').click(function(){
&&&&&&&& $(this).addClass('on');
//&&&&&& 如何选取当前对象的 父元素?
//&&&&&& 如何获得当前star左侧所有的star?
在第二行,我们得到了我们点击的当前对象。但是,如 何得到stars的父级?即div.rating。但是,在一个页面中,有很多div.rating。哪一个是我们想要的?如何获得&this&左边所有的star?
可喜的是,jQuery允 许我们基于这些基层关系,在现存集合的基础上获得新的元素集合。而这些正是遍历函数发挥作用的地方。
1、children
这个函数得到一组元素的直接子级。
在很多情况下会很方便,看看下面这张图:
开始的时候容器中的star全部被选择;
给children()传递一个选择表 达式将选择结果缩小至选中的star;
如果chilidren()每接受任何 参数,将返回所有直接子级;
不返回孙级元素。
这个函数通过传递的选择表达式从一个集合中过滤元素。任何不匹配这个表达式的元素将从选择的集合中移除。
下面的这个例子直截了当。从 5个star中过滤出class为&on&的star。
与filter恰恰相 反,not()从集合中移除匹配的元素。
看下面这个例子。偶数列的star从 选择集合中移除,留下的是奇数行的star。
& 注意:'Even'和'odd'选择器是从0开始的,从0开 始计数,不是从1。&
如果我们想在集合中增加一些元素怎么办?add()函 数正是做这件事的。
同样简单明了,photo盒 子被添加到集合中。
有时候,我们需要根据元素在集合的位置获取集合的子集。sliece()正是做这个的。
第一个参数是从零开始的第一个元素的位置,它包含在返回的片段中;
第二个参数是从零开始的第一个元素的索引。不包含在返回的片段中。如果省略,将延伸至集合的末尾;
所以,slice(0,2)将选取前两 个star。
parent()函数选取一系列元素的直接父级。
正如下图所示,第一个star的 直接父级被选中。非常方便,应当指出,它仅仅返回直接父级,为什么很奇特?因为没有祖父元素或祖先元素被选中。
7、parents
这是复数形式,parents()选 择集合的所有祖先元素。我的意思是所有祖先元素包括直接父级到&body&和&html&元素。所以最好通过传递表达式缩小选择结果。
通过给parents()传 递.container参数,div.container将被选中,它实际上第一个star的祖父。
8、siblings
这个函数选择一组元素的所有兄弟姐妹,传递一个表达式可以筛选结果。
看看这个例子:
谁是第一个star的兄弟节点?其它的四个,对 不?
如图所示,&odd&的节点被选中。索 引是从零开始的,看看下面star的红色数字。
9、prev & prevAll
prev()函数选择前一个兄弟节点。prevAll()选择一个元素集合前面所有的兄弟节点。如 果你正在构建一个星级部件,这将相当方便。第三个star前面的兄弟节 点被选中。
10、next & nextAll
这些函数与prev和prevAll工作方式相同,不过它选择的是下一个兄弟姐妹。
最后,让我们来看看如何利用这些函数来解决现实世界中令我们头痛的问题。
$('.star').click(function(){
&&&&&&&& $(this).addClass('on');
//&&&&&& 如何取得当前对象的 父级?
&&&&&&&& $(this).parent().addClass('rated');
//&&&&&& 如何获得当前对象左 侧的star?
&&&&&&&& $(this).prevAll().addClass('on');
&&&&&&&& $(this).nextAll().removeClass('on');
这就是这篇教程中早期提到的问题,对吗?在这几行代码中我们使用了这几个遍历函数。
在第5行,看看parent()函数,啊哈,真简单。
在第8行和9行,prevAll()和nextAll().选择填充的star和 空的star。
现在,遍历函数是做么的方便。当在一起使用时,它们将更加强大。也就是说,一个函数的输出是另一个函数的输 入,它们是链式的。
最新图文推荐
最新专栏文章
大家感兴趣的内容
网友热评的文章
seajs.config({
base: "/resource/passapi/scripts/"
seajs.use('seajs/seajs-css');
seajs.use(['artdialog/src/dialog-plus'], function (dialog) {
$('#favorite').on('click', function(){
$.getJSON('/passapi.ashx?op=userstatus&callback=?', function(data){
if (data.status == 1) {
var _this = $('#favorite').find('span');
$.getJSON('/?app=favorite&controller=favorite&action=add&jsoncallback=?&contentid='+contentid, function(json){
if(json.state){
_this.html('jquery操作iframe中的js函数
关键字:jquery操作iframe中的js函数&
1、jquery操作iframe中的元素(2种方式)&
$(window.frames["core_content"].document).find("#trewuuu").html();&
$("#core_content").contents().find("#trewuuu").html();&
2、操作父界面中的元素(header:为某个元素的id)&
//$('#header',
parent.document).text()&
3、js调用iframe中的js函数(2种)&
window.frames["core_content"].window.testIframe2("11");&
document.getElementByIdx_x_x("core_content").contentWindow.testIframe2("11");&
4、jquery调用iframe的js函数(带参数的会有返回值)&
$("#core_content")[0].contentWindow.testIframe2("11");&
5. 调用父页面js函数,直接用parent.myFunction();
注意事项:&
1、要和所包含的iframe在同一个域名(因为不能跨域)
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 aspen精馏塔模拟 的文章

 

随机推荐