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>

参考技术A 这样的写法也是可以的,直接通过id取得dom对象。

但是这种写法不太安全,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:在英语中,我们将字母与它们的基线对齐,这不一定是底部(想想gq 和其他descenders)。 【参考方案1】:

我能想到的唯一方法是将文本(fillText)绘制成canvas element,然后查询元素的pixel data(getImageData 等)以找出给定字符的实际位置根据您要使用的任何标准垂直开始(例如,您是否要忽略向上的衬线等)。不是因为胆小的人,如果有任何其他方法可以实现您的总体目标,我会寻找其他地方。

【讨论】:

以上是关于javascript基础 这里获取元素为啥不是document.getElementById(mydiv) 为啥以下这样获取元素也行的主要内容,如果未能解决你的问题,请参考以下文章

为啥在这里使用 do.call ?

用getBoundingClientRect()来获取页面元素的位置

为啥javascript触发提交表单(方法获取,目标空白)打开弹出窗口而不是新标签?

JavaScript中DOM简介获取元素及事件基础

JavaScript 基础 学习

JavaScript 基础 学习