原文:http://www.10000it.net/javascript/20090808/731.html
很多人可能在调用css样式都是使用传统的方式调用其实有很多方法可以进行调用,如使用内嵌样式,在html直接加入样式,给定外部样式文件,在外部样式文件中使用 @import
url(样式文件路径),这些都是大家常用的,其实还有就是使用javascript进行样式的定义。
第一种:
var style = document.createElement(’link’);
style.href = ’style.css’;
style.rel = ’stylesheet’;
style.type = ‘text/css’;
document.getElementsByTagName(’HEAD’).item(0).appendChild(style);
第二种简单:
document.createStyleSheet(style.css);
动态的 style 节点,使用程序生成的字符串:
var style = document.createElement(’style’);
style.type = ‘text/css’;
style.innerHTML=”body{ background-color:blue; }”;
document.getElementsByTagName(’HEAD’).item(0).appendChild(style);
但是在上面只能在Firefox兼容,在IE里却不支持。
var sheet = document.createStyleSheet();
sheet.addRule(’body’,'background-color:red’);
如果按照上面的话就能成功,但是很麻烦,要把字符串拆开写。
我一直在搜索着用javascript定义样式的代码,终于找到了,代码如下。
document.createStyleSheet(”javascript:’body{background-color:blue;’”);
但用上面的javascript代码唯一的缺点就是url 最大 255 个字符,长一点的就不行了,经过 SXPCrazy 提示,将代码进行修改成如下:
window.style=”body{background-color:blue;”;
document.createStyleSheet(”javascript:style”);
完美解决!!代码:
<script>
function blue(){
if(document.all){
window.style="body{background-color:blue;";
document.createStyleSheet("javascript:style");
}else{
var style = document.createElement('style');
style.type = 'text/css';
style.innerHTML="body{ background-color:blue }";
document.getElementsByTagName('HEAD').item(0).appendChild(style);
}
}
</script>
以上是完整代码!
本文关键字 javascript,网页设计,javascript调用样式,疯狂IT
不为人知的JS调用样式的方法---document.createElement().addRule(..)
分析代码时,发现自己的盲点——document.createElement(),冲浪一番,总结了点经验。
document.createElement()是在对象中创建一个对象,要与appendChild() 或 insertBefore()方法联合使用。其中,appendChild() 方法在节点的子节点列表末添加新的子节点。insertBefore() 方法在节点的子节点列表任意位置插入新的节点。
下面,举例说明document.createElement()的用法。<div id="board"></div>
例1:
<script type="text/javascript">
var board = document.getElementById("board");
var e = document.createElement("input");
e.type = "button";
e.value = "这是测试加载的小例子";
var object = board.appendChild(e);
</script>
效果:在标签board中加载一个按钮,属性值为“这是测试加载的小例子”。
例2:
<script type="text/javascript">
var board = document.getElementById("board");
var e2 = document.createElement("select");
e2.options[0] = new Option("加载项1", "");
e2.options[1] = new Option("加载项2", "");
e2.size = "2";
var object = board.appendChild(e2);
</script>
效果:在标签board中加载一个下拉列表框,属性值为“加载项1”和“加载项2”。
例3:
<script type="text/javascript">
var board = document.getElementById("board");
var e3 = document.createElement("input");
e4.setAttribute("type", "text");
e4.setAttribute("name", "q");
e4.setAttribute("value", "使用setAttribute");
e4.setAttribute("onclick", "javascript:alert('This is a test!');");
var object = board.appendChild(e3);
</script>
效果:在标签board中加载一个文本框,属性值为“使用setAttribute”。 当点击这个文本框时,会弹出对话框“This is a test!”。
根据上面例子,可以看出,可以通过加载对象的属性来设置,参数是相同的。使用e.type="text" 和 e.setAttribute("type","text")效果是一致的。
下面,我们用实例来讲述一下appendChild() 方法和insertBefore() 方法的不同。
比如我们要在下面这个div中插入一个子节点P时:<div id="test"><p id="x1">Node</p><p>Node</p></div>
我们可以这样写:
<script type="text/javascript">
var oTest = document.getElementById("test");
var newNode = document.createElement("p");
newNode.innerHTML = "This is a test";
//测试从这里开始
//appendChild方法:
oTest.appendChild(newNode);
//insertBefore方法:
oTest.insertBefore(newNode,null);
< /script>
通过以上的代码,可以测试到一个新的节点被创建到了节点div下,且该节点是div最后一个节点。很明显,通过这个例子,可以知道appendChildhild和insertBefore都可以进行插入节点的操作。
在上面的例子中有这样一句代码:oTest.insertBefore(newNode,null) ,这里insertBefore有2个参数可以设置,第一个是和appendChild相同的,第二却是它特有的。它不仅可以为null,还可以为:
<script type="text/javascript">
var oTest = document.getElementById("test");
var refChild = document.getElementById("x1");
var newNode = document.createElement("p");
newNode.innerHTML = "This is a test";
oTest.insertBefore(newNode,refChild);
< /script>
效果:这个例子将在x1节点前面插入一个新的节点
又或:
<script type="text/javascript">
var oTest = document.getElementById("test");
var refChild = document.getElementById("x1");
var newNode = document.createElement("p");
newNode.innerHTML = "This is a test";
oTest.insertBefore(newNode,refChild.nextSibling);
< /script>
效果:这个例子将在x1节点的下一个节点前面插入一个新的节点
还可为:
<script type="text/javascript">
var oTest = document.getElementById("test");
var newNode = document.createElement("p");
newNode.innerHTML = "This is a test";
oTest.insertBefore(newNode,oTest.childNodes[0]);
< /script>
这个例子将在第一子节点前面插入一个新的节点,也可以通过改变childNodes[0,1,...]来在其它位置插入新的节点
由于可见insertBefore()方法的特性是在已有的子节点前面插入新的节点,但例一中使用insertBefore()方法也可以在子节点列表末插入新节点的。两种情况结合起来,发现insertBefore()方法插入节点,是可以在子节点列表的任意位置。
从这几个例子中得出:
appendChild() 方法在节点的子节点列表末添加新的子节点。
insertBefore() 方法在节点的子节点列表任意位置插入新的节点。
相关推荐
JS写图层方法.document.createElement(div).
在Web开发中,JavaScript是一种不可或缺的脚本语言,它赋予网页动态交互的能力。在这个"友人信息搜索器"项目中,我们主要探讨如何利用JavaScript实现一个用户友好的信息检索系统。下面将详细阐述这个系统的核心知识...
这可以通过`document.createElement()`、`innerHTML`属性或者`appendChild()`等方法实现。 例如,假设有一个按钮`<button id="addButton">添加</button>`,我们可以用以下JavaScript代码实现点击按钮后向列表添加新...
其次,`29.javascript-document对象详解(下).txt`很可能是文档的文本版,详细解释了`document`对象的更多高级特性和方法。这可能包括`document.querySelector`和`document.querySelectorAll`,它们分别用于选择匹配...
在JavaScript的世界里,实现按钮上的说明文字是一种常见的交互设计,它可以增强用户体验,提供更清晰的操作指导。本资源“javascript经典特效---按钮上的说明文字.rar”包含一个名为“按钮上的说明文字.htm”的文件...
这对于转换开始时认为“我们不需要臭臭的编译器”的项目将已经编译的JS转换成可维护的东西(例如语法→ →→ react-createelement-to-jsx → 语法)安装$ npm install babel-plugin-transform-react-createelement-...
e.target.classList.add('active'); // 更新右侧内容 var rightContainer = document.getElementById('right-container'); rightContainer.innerHTML = detailElement.innerHTML; } }); ``` 在实际应用中,...
1. **选择表格元素**:JavaScript提供了多种方法来选择表格元素,例如`document.getElementById()`、`document.querySelector()`、`document.querySelectorAll()`等。如果表格有特定ID,可以使用`getElementById`;...
例如,`document.getElementById()`或`document.querySelector()`可以用来选取特定ID或CSS选择器匹配的元素,而`document.createElement()`和`appendChild()`则用于创建和添加新元素。 2. **事件监听**:JavaScript...
JavaScript是一种广泛应用于网页和网络应用的编程语言,尤其在实现客户端动态效果方面有着不可或缺的地位。在本资源"javascript经典特效---不同内容的文字链接.rar"中,重点探讨的是如何使用JavaScript来实现文字...
使用document.createElement:let el = document.createElement(“ div”)el.className =“包装器” let输入= document.createElement(“ input”)input.setAttribute(“ type”,“ text”)let button = ...
这包括使用`document.getElementById`、`document.querySelector`或`document.createElement`等方法。 2. **事件监听**:为了响应用户的鼠标移动,我们需要添加事件监听器。通常会使用`addEventListener`来绑定`...
1. DOM操作:通过`document.createElement()`创建新的HTML元素,然后用`appendChild()`或`insertBefore()`方法将它们添加到页面上。 2. CSS3属性:使用`transform`属性进行位移、缩放和旋转,`animation`属性创建...
例如,你可以创建一个`SAXBuilder`实例,然后调用其`build()`方法读取XML文件并将其转换为`Document`对象。 `jdom-b3-docs.zip`可能包含JDOM的API文档,这对于理解和使用库中的各种类和方法至关重要。开发者可以...
2. **DOM操作**:使用`document.createElement`创建新的input元素,`element.setAttribute`设置属性,如type(文本、密码等)、name(用于识别数据)等。然后,使用`parentElement.appendChild`将新元素添加到目标...
### Document对象内容集合 在网页开发中,Document对象是浏览器为用户提供的重要接口之一,它代表了整个HTML或XML文档,并提供了访问和操作文档结构的方法。本文将深入解析Document对象的相关属性与方法,帮助读者...
先创建一个Canvas元素,然后获取其2D渲染上下文`ctx`,并调用`drawImage()`方法。 ```javascript let canvas = document.createElement('canvas'); let ctx = canvas.getContext('2d'); ctx.drawImage(img, 0, 0, ...
4. **DOM操作**:通过`document.getElementById`、`document.querySelector`或`document.createElement`等方法操作DOM元素,更新页面状态,如显示发送成功或失败的提示。 5. **模拟效果**:可能包含一些动画效果,...
在星星闪烁特效中,可能需要动态生成大量的星星元素,然后使用`document.createElement()`,`appendChild()`等方法将它们添加到页面上。 3. **JavaScript定时器**:利用`setInterval()`或`setTimeout()`函数可以...
这在某些设计风格中可能并不符合预期,因此我们需要找到方法来去掉这个虚线边框。本主题围绕“JavaScript经典特效——去掉图片链接周围虚线”展开,我们将探讨如何利用JavaScript来解决这个问题。 首先,我们需要...