网站开发技术

记点笔记、 学点技术 欢迎交流建站技术。本站关注lamp技术

您尚未登录。

#1 javascript技术区 » uedit setContent Uncaught TypeError: ... » 2014-12-20 16:11:11

jquery
回复: 0

对uedit 执行命令 setContent 的时候,应该保证编辑器已经初始化话完毕。才可是使用。

否则给出错误提示

Uncaught TypeError: Cannot set property 'innerHTML' of undefined

正确的写法应该是 

var ue = UE.getEditor('editor');
var content =  '惺惺惜惺惺;
var type = '<?php echo $row['type']; ?>';


//  ue.setContent(content);  错误的写法

// 正确的写法
ue.ready(function () {
    ue.setContent(content);
});


#2 javascript技术区 » js函数内部的变量一定要写var关键字, f防止污染全局变量。 » 2014-12-18 11:19:35

jquery
回复: 0

js 中var 用于定义一个变量。如果在函数中没有用var , 就有可能产生了一个全局的变量。

function f() {
    x = 1;
}

f();
alert(window.x);

这里就产生了一个全局变量。 x


好的习惯应该是 

var x, y , z;


#3 javascript技术区 » 如何禁止,执行执行js 中的构造函数, 使用 "use strict" 模式 » 2014-12-18 10:57:05

jquery
回复: 0

因为直接执行构造函数,会出现,意想不到的的结果。具体可以看(js 如果直接执行 构造函数,会发生什么事情

好的习惯应该是使用构造函数的时候 ,应该加上  "use strict" ,表示是严格的执行模式。

如果执行下面代码

function Test(name, age) {
     "use strict";
     this.name = 'zhangs';
}

Test();

则 浏览器就会输出错误的新的信息

Uncaught TypeError: Cannot set property 'name' of undefined

所以加上 user strict 是更安全的做法。

#4 javascript技术区 » js 如果直接执行 构造函数,会发生什么事情。 » 2014-12-18 10:50:03

jquery
回复: 0

先看一个示例代码

var age = 100;   
         
function Test(name, age) {
    this.name = name;
    if(age) {
       this.age = age; 
    } else {
        this.age = 200;
    }
}

Test();
alert(age);

这段代码可以分成两个部分看。

第一个部分就是   var age = 100; 

其余的部分是第二个部分。

输出结果是 200 .

表明 第二部分把第一部分的值给修改了。


本来 Test() 应该是个构造函数(javascript 中什么是构造函数) 来产生对象用的。结果直接给执行了。 构造函数中是有this 关键字的。 

如果直接执行了, 在这个环境中this 就是表示 window 了。

结果就是  window.age = 200; 就把值给修改了。

所以说构造函数是不能直接执行了, 会产生变量,或者修改变量。


可以再 Test() 中加入

alert(this === window) // 执行的结果是  true 



#5 javascript技术区 » javascript 中什么是构造函数 » 2014-12-18 10:37:48

jquery
回复: 0

构造函数函数的普通函数的最大区别是 构造函数中会使用 this.

构造函数和普通的函数不太一样, 他们都是对象类型。

构造函数的目的是产生对象, 普通的函数的目的是完成一个特定的功能(面向过程的)。


产生一个对象的示例

function Test(name, age) {
    this.name = name;
    this.age = age;
}

var zhangs = new Test('zhangs', '10');
alert(zhangs.name);

这里需要注意两点:

第一: 函数中使用 this 表示这是个构造函数,用来生产一个对象。

第二: 生成对象的时候需要用到关键字 new.


如果在生成对象的时候, 没有给出参数, 传递的就是 undefiend. 索引使用 new 的时候是不一定需要使用 ()的。

var zhangs = new Test;
var zhangs = new Test();

是等价的。 

#6 javascript技术区 » js 中的数据类型有六种, 使用 typeof 可以产看 » 2014-12-18 10:04:24

jquery
回复: 0

js 中的数据类型, 函数也是一种数据类型

<script>
    w = function(type) {
document.writeln("<pre> typeof(" + type + ") :" + typeof (type) + " </pre>");
    };

    w('1');
    w(1);
    w(w);
    w(false);
    w(undefined);
    w(window);
</script>

打印的结果


<pre> typeof(1) :string </pre>

<pre> typeof(1) :number </pre>

<pre> typeof(function (type) {
document.writeln("<pre> typeof(" + type + ") :" + typeof (type) + " </pre>");
    }) :function </pre>
    
<pre> typeof(false) :boolean </pre>

<pre> typeof(undefined) :undefined </pre>

<pre> typeof([object Window]) :object </pre>

#7 javascript技术区 » js 中的 undefined » 2014-12-18 09:54:30

jquery
回复: 0

undefined 的意思是 没有定义的。 是一种变量的类型

js 的变量类型有6中(js 中的数据类型有六种

undefined 在不同的浏览器中有不同的表现。

ie中undefined 是可以被赋值的, 火狐和google 浏览器不能被赋值。

undefined = '111';
alert(undefined);

在google 浏览器中显示的是 undefined 

再ie中显示的是 111.

undefined 只有一值,就是 undefiend

#8 javascript技术区 » jquery中append与 appendTo , after 方法区别 » 2014-12-16 11:01:56

jquery
回复: 0

jquery 的文档处理 append 

jquery 文档处理 appendTo

jquery after 使用方法


 $("#a").append("str") ; 不字符串写入 #a 内部的后面

而 $("#a").after("<div>xxx</div>") ; 是吧  <div>xxx</div> 插入在 #a 外部的后面

而 $("p").appendTo("div") ; 是 p 插入在 div 的后面, 和  append 刚好是相反的。


比如

<div id="one"><p>one</p></div>

jquery 

$("#one").append('<div id="two"><p>two</p></div>');
$("<div id='three'><p>three</p></div>").appendTo("#two");
$("#three").after("<div id='four'><p>four</p></div>");

结果

    <div id="one">
        <p>one</p>
        
        <div id="two">
            <p>two</p>
            <div id="three">
                <p>three</p>
            </div>
            <div id="four">
                <p>four</p>
            </div>
        </div>
        
    </div>

第一步骤  append 表示再  #one 内部的最后  增加 #two

第二步骤  把 #three 插入在 two 内部 的后面

第三步骤  再 three 的外部后面写入 #four

#9 javascript技术区 » jquery insertBefore 把元素插入到指定元素的外部后前 » 2014-12-16 10:40:49

jquery
回复: 0

首先选定元素,然后把这个元素到到指定元素的后面

比如 

 <p>two</p><div id="one">one</div>

jquery  , 把 #one 移动到 p 外部的前面

$("#one").insertBefore('p');

结果

<div id="one">one</div><p>two</p>


#10 javascript技术区 » jquery insertAfter 把元素插入到指定元素的外部后面 » 2014-12-16 10:37:31

jquery
回复: 0

比如 , 表示 把 p 元素放到  #one 后面 

$("p").insertAfter('#one');

就会使

 <p>two</p><div id="one">one</div>

变为

<div id="one">one</div><p>two</p>


#11 javascript技术区 » jquery before 使用方法 » 2014-12-16 10:31:30

jquery
回复: 0

before 的使用方法和 after 一样

在元素的外面, 之前写入。

示例

html 

<div id="one">one</div>

jquery

$("#one").before('<div id="two">two</div>');
$("#one").before('<div id="three">three</div>').before(function() {
    return '<div id="four">four</div>';
});

输出的结果是

<div id="two">two</div>
<div id="three">three</div>
<div id="four">four</div>
<div id="one">one</div>

每次都是 再one 的前面写入了 two , three, four, 

#12 javascript技术区 » jquery after 使用方法 » 2014-12-16 10:25:20

jquery
回复: 0

jquery after 是在元素之后追加一个元素

测试代码

$(document).ready(function() {
    $("#one").after('<div id="two">two</div>');
    $("#one").after('<div id="one">three</div>').after(function() {
        return '<div id="four">four</div>';
    });
});

html

<div id="one">one</div>

输出的结果是

<div id="one">one</div>
<div id="four">four</div>
<div id="three">three</div>
<div id="two">two</div>

首先参数使用  一个字符串,表示把这个字符串写入到 one 的外面 之后。

第二个使用链式操作,还是放到了one之后  three , 最后一个操作也是 one 之后。

#13 javascript技术区 » jquery perpendTo : 移动匹配的元素 » 2014-12-16 10:08:00

jquery教程
回复: 0

比如 

$("h1").prependTo("div");

表示把 h1 移动的div内部的开头

比如 

<div><p>001</p></div> <h1>h1</h1>

移动的结果就是

<div><h1>h1</h1><p>001</p></div>


#14 javascript技术区 » jquery 文档处理 prepend (conent | fn) » 2014-12-16 10:03:11

jquery教程
回复: 0

这个是前追加, 而 append 是后追加。

两个的用法一样, 不同地方是是一个追加的地方是元素对象的开头, 一个是结尾。

用法可以查看

jquery 的文档处理 append 参数详解 

示例

jquery

$(document).ready(function() {
    $("#f").append('<div id="s1">s1</div>');
    $("#f").prepend('<div id="s2">s2</div>');
});

html 

<div id="f" style="outline: 2px solid red">
    <p>fater</p>
</div>

输出结果

<div id="f" style="outline: 2px solid red">
    <div id="s2">s2</div>
            <p>fater</p>
    <div id="s1">s1</div>
</div>


#15 javascript技术区 » jquery 文档处理 appendTo » 2014-12-16 09:55:29

jquery教程
回复: 0

appendTo(str) 的是使用方法是:

首先选定一个jquery对象, 然后 把这个对象加入到  str 中。

str 经过  appentTo 也是一个jQuery 对象了。

这个和 append 是不同的,$("#a").append("b"); 这里的b是一个字符串, 复制移动到jquery 对象 $("#a")中。

而 $("b").appendTo("p") 表示把  p 这里不是一个字符p 而是所有的 p标签的内容 复制移动到 所有的  b 标签中。

一个例子

html 代码如下

<p>1</p>
<p>2</p>
<b>xxx</b>
<b>yyy</b>

jquery 代码如下

$(document).ready(function() {
    var d = $("b").appendTo("p");
    alert( d instanceof $  );
    alert( d.html('zzz'));
});

显示的结果 分为三个步骤

第一: 显示的内容是 

1xxxyyy

2xxxyyy

这个表示, 分别把<b>xxx</b> <b>yyy</b> 复制两份移动分别移动(复制移动)到 <p>中。

然后 alert(true) 表示 返回的还是jquery对象, 

最后的结果都变成了

1zzzzzz
2zzzzzz

表示  返回的结果是   $("b");

#16 javascript技术区 » jquery 文档追加append 如果参数是一个jquery对象会有什么样的结果? » 2014-12-16 09:29:11

jquery教程
回复: 0

比如 html 文档是 

<p>001</p>
<h1>h1</h1>

jquery代码是

$(document).ready(function() {
    $("p").append($("h1"));
});

结果是 看上去似乎没有变化,h1还是一个, 但是 h1移动到 p 中了。

也就是说 这个是移动的效果。

把h1移动到 p 中。

不是本来想的 有两个 h1. 

可能的原因是 处于标准的考虑吧, 试想如果 是 append($("#xxx")) 如果不是 移动的效果, 那么就有 至少两个  #xxx 。 

一个html中id只能有一个。


页脚

Powered by FluxBB