document.getElementByid、document.all和document.layers

document.getElementById 是公共标准,被目前的所有主流浏览器支持

document.all只有IE支持。document.all是IE 4.0及以上版本的专有属性,是一个表示当前文档的所有对象的娄组,不仅包括页面上可见的实体对象,还包括一些不可见的对象,比如html注释等等。在document.all数组里面,元素不分层次,是按照其在文档中出现的先后顺序,平行地罗列的。所以可以用数字索引来引用到任何一个元素。但比较常用的是用对象id来引用一个特定的对象,比如document.all["element"]这样。

document.layers是Netscape 4.x专有的属性,是一个代表所有由储如<div><layer>等定位了的元素的数组。通常也是用<div>或<layer>对象的id属性来引用的,但是这里面不包含除此以外的其它元素。

document.all是IE下面的document属下的所有元素的集合
可以通过document.all.length来看到document下面的元素数量
document.all(index)后面的index参数是一个集合方法

如果index是string那么可以获得document下面具有id或name为index的元素 如果只有一个的元素话返回这个元素 如果有多个元素id或name是index的话就返回一个集合 如果没有的话就返回null
这样并不好 因为当你不知道有多少个id或name是index的元素时 就比较容易出错.
如果index是数字的话 那么会返回以0为基础的 文档中第index个元素. 元素的文档序列可以通过Element.sourceIndex来获取

document.getElementById(name) 只返回第一个具有id或name为name的元素 所以不是null就是一个元素 而不会返回集合 这样就大大减少了错误发生的可能性  

如果需要返回一个id或name为name的元素集合的话 就要用 document.getElementsByName(name)来获取

document.getElementById
返回 ID 属性值与指定值相同的第一个对象,如果 ID 属于一个集合,getElementById 方法返回集合中的第一个对象。

document.all
如果 ID 属于一个集合,document.all返回一个集合。而且只支持IE。

所以在使用IE的前提下,document.all(index)要生效需要保证index是唯一的

所以如果你想让你写的js脚本在目前的大多浏览器中使用,需要使用[公共标准] 标准的Javascript

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

显示/隐藏table的3个方法 收藏

<script type="text/javascript"></script> <script class="blogstory"></script>

方法1:

<table style="display:none" id=x></table>
 
//使用javascript控制
document.getElementById("aaa").style.display=""; //控制table显示
document.getElementById("bbb").style.display="none"; //控制table不显示
 
<tr>在tr里面也可使用 <tr style="display:none"></tr>
<tr   style="visibility:hidden">
//仅隐藏内容  

<tr   style="display:noe">
完全不显示  

方法2:

 

    //table中添加特性

    <table runat="server"   id="xx" style="display:none"> ... </table>

    //后台添加特性

    xxx.Attributes.Add("onclick", "javascript:document.getElementByI("xx").style.display = "";");

 

方法3:

 

    //使用Panel   在 ASP.NET中更加方便

    <asp:Panel ID="paneltotal" runat="server">
             <table id="total" border="0" >
                 <tr>
                     <td>
                         <asp:Label ID="lbTD" runat="server" Width="80px" Text="充值合计"></asp:Label>

                    </td>
                </tr>
             </table>
   </asp:Panel>

 

    //后台控制

    paneltotal.Visible = false;//隐藏

    paneltotal.Visible = false;//显示

我写了一个js代码module.exports.points=[ [99.8653,22.3603], [114.9822,22.7371], [102.5558,22.8008], [103.344,23.2606], [102.5608,23.2823], [106.7131,23.292], [103.3142,23.2938], [101.9842,23.3834], [106.7964,23.3984], [102.2291,23.4502], [114.5827,23.7578]],在html中写了缓冲功能 //创建缓冲区 const graphicsLayer = new GraphicsLayer(); map.add(graphicsLayer); const resultsLayer = new GraphicsLayer(); map.addMany([graphicsLayer, resultsLayer]); const points=require('./point.js').points; //创建points数组 const pointArray = []; for (let i = 0; i < points.length; i++){ pointArray.push([points[i][0], points[i][1]]); } const multipoint = new Multipoint({ ponits:pointArray }) ; const simpleMarkerSymbol={ type: "simple-marker", color: [226, 119, 40], outline:{ color: [255, 255, 255], width: 1 } } ; const multipointGraphics = multipoint.points.map((point)=>{ return new Graphic({ geometry:{ type: "point", longitude: point[0], latitude: point[1] } , symbol: simpleMarkerSymbol }) ; } ); graphicsLayer.addMany(multipointGraphics); view.ui.add(document.getElementById("controls"), "top-right"); document.getElementById("earthquake").addEventListener("click", visual); document.getElementById("buffer").addEventListener("click", createBuffers); document.getElementById("reset").addEventListener("click", resetGraphics); document.getElementById("intersect").addEventListener("click", findIntersect); document.getElementById("union").addEventListener("click", createUnion); document.getElementById("heatmap").addEventListener("click", creatheatmap); document.getElementById("colse").addEventListener("click", closeheatmap); let bufferGraphics = []; function createBuffers(){ if (bufferGraphics.length > 0){ return; } bufferGraphics = multipointGraphics.map((pointGraphic) =>{ const buffer = geometryEngine.geodesicBuffer( pointGraphic.geometry, 10, "kilometers" ) ; return new Graphic({ geometry: buffer, symbol:{ type: "simple-fill", color: [227, 139, 79, 0.5], outline:{ color: [255, 255, 255, 255], }, }, }); } ); resultsLayer.addMany(bufferGraphics);存在一些问题可以帮我解决吗
06-09
根据你提供的代码,我看到有几个问题: 1. `require`函数需要在Node.js环境中运行,但是在浏览器端不支持。如果你想在浏览器中加载外部JS文件,可以使用`<script>`标签。 2. 在`Multipoint`的构造函数中,属性名应该是`points`而不是`ponits`。所以你需要将`const multipoint = new Multipoint({ ponits:pointArray }) ;`改为`const multipoint = new Multipoint({ points:pointArray }) ;`。 3. `geometryEngine`没有被定义。你需要在代码中引入它: ```javascript require([ "esri/geometry/geometryEngine", "esri/geometry/Multipoint", "esri/Graphic", "esri/layers/GraphicsLayer", "esri/views/MapView", "dojo/domReady!" ], function(geometryEngine, Multipoint, Graphic, GraphicsLayer, MapView) { //... }); ``` 4. `creatheatmap`和`closeheatmap`函数没有被定义。你需要在代码中定义它们。 5. 你可以在`createBuffers`函数中添加一个判断条件,如果`bufferGraphics`已经存在,就不需要再次创建缓冲区。 下面是修改后的代码片段: ```javascript //创建缓冲区 const graphicsLayer = new GraphicsLayer(); map.add(graphicsLayer); const resultsLayer = new GraphicsLayer(); map.addMany([graphicsLayer, resultsLayer]); const points=[[99.8653,22.3603], [114.9822,22.7371], [102.5558,22.8008], [103.344,23.2606], [102.5608,23.2823], [106.7131,23.292], [103.3142,23.2938], [101.9842,23.3834], [106.7964,23.3984], [102.2291,23.4502], [114.5827,23.7578]]; //创建points数组 const pointArray = []; for (let i = 0; i < points.length; i++){ pointArray.push([points[i][0], points[i][1]]); } const multipoint = new Multipoint({ points:pointArray }) ; const simpleMarkerSymbol={ type: "simple-marker", color: [226, 119, 40], outline:{ color: [255, 255, 255], width: 1 } }; const multipointGraphics = multipoint.points.map((point)=>{ return new Graphic({ geometry:{ type: "point", longitude: point[0], latitude: point[1] }, symbol: simpleMarkerSymbol }); }); graphicsLayer.addMany(multipointGraphics); view.ui.add(document.getElementById("controls"), "top-right"); document.getElementById("earthquake").addEventListener("click", visual); document.getElementById("buffer").addEventListener("click", createBuffers); document.getElementById("reset").addEventListener("click", resetGraphics); document.getElementById("intersect").addEventListener("click", findIntersect); document.getElementById("union").addEventListener("click", createUnion); let bufferGraphics = []; function createBuffers(){ if (bufferGraphics.length > 0){ return; } bufferGraphics = multipointGraphics.map((pointGraphic) =>{ const buffer = geometryEngine.geodesicBuffer( pointGraphic.geometry, 10, "kilometers" ); return new Graphic({ geometry: buffer, symbol:{ type: "simple-fill", color: [227, 139, 79, 0.5], outline:{ color: [255, 255, 255, 255], }, }, }); }); resultsLayer.addMany(bufferGraphics); } function creatheatmap(){ //TODO } function closeheatmap(){ //TODO } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值