javascript基础 这里获取元素为啥不是document.getElementById(mydiv) 为啥以下这样获取元素也行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript基础 这里获取元素为啥不是document.getElementById(mydiv) 为啥以下这样获取元素也行相关的知识,希望对你有一定的参考价值。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script>
function myfun()
mydiv.style.display="none"; //就是这里为什么
</script>
</head>
<body onload="myfun()">
<img src="img/shang.jpg" width="335" height="333" />
<div style="background:#fff;position:absolute;left:0;top:0;width:335px;height:333px;" id="mydiv">网页正在加载</div>
</body>
</html>
但是这种写法不太安全,js这样操作dom,如果其他代码导致这个节点被删除,这里岂不是要出错,执行前还要判断 typeof 看是否定义,或者 if (window.test) 这种。
还有如果你的id名称和全局变量重复的话,你访问的就是那个全局变量了,这时候你就只能通过getElementById来获取了。本回答被提问者采纳
如何在 jQuery/javascript 中获取文本本身顶部的位置,而不是文本元素
【中文标题】如何在 jQuery/javascript 中获取文本本身顶部的位置,而不是文本元素【英文标题】:How to get position of top of text itself, rather than text element, in jQuery/javascript 【发布时间】:2011-11-09 14:29:51 【问题描述】:我不确定这是否可能,但这里是:
我想找到一些文本的 y 坐标。出于我的目的,包含该文本的 元素的 y 坐标 是不够的。原因如下:
http://jsfiddle.net/3kh3p/
上面的jsfiddle中有两个字符,一个在Georgia,一个在Verdana。它们都绝对定位为 top:0。如您所见,Verdana 字符的起始点比 Georgia 字符低。
我需要相当准确地获取文本本身的 y 坐标,因为我正在使用该值通过 PHP 的 imagettftext 函数将文本写入图像,并且超出 5 或 10 个像素是不行的。
有办法吗?
【问题讨论】:
在英文中我们将字母对齐到底部 @Joseph:在英语中,我们将字母与它们的基线对齐,这不一定是底部(想想g
、q
和其他descenders)。
【参考方案1】:
我能想到的唯一方法是将文本(fillText
)绘制成canvas
element,然后查询元素的pixel data(getImageData
等)以找出给定字符的实际位置根据您要使用的任何标准垂直开始(例如,您是否要忽略向上的衬线等)。不是因为胆小的人,如果有任何其他方法可以实现您的总体目标,我会寻找其他地方。
【讨论】:
以上是关于javascript基础 这里获取元素为啥不是document.getElementById(mydiv) 为啥以下这样获取元素也行的主要内容,如果未能解决你的问题,请参考以下文章
用getBoundingClientRect()来获取页面元素的位置