Tag: DOM

jQuery的空()vs删除()

jQuery empty()和remove()方法有什么区别,当我们调用这些方法时,被创build的对象将被销毁并释放内存?

JQuery检查DOM中的重复ID

我用ASP.NET MVC编写应用程序。 与传统的ASP.NET相反,您需要在生成的页面中创build所有ID。 ASP.NET会给你讨厌但唯一的ID。 我想添加一个快速的小jQuery脚本来检查我的文档重复的ID。 他们可能是DIVS的ID,图像,checkbox,button等。 <div id="pnlMain"> My main panel </div> <div id="pnlMain"> Oops we accidentally used the same ID </div> 我正在寻找一个设置和忘记types的工具,只是当我做一些粗心的事情时,会警告我。 是的,我只会在testing期间使用它,并且也欢迎替代品(如firebug插件)。

使用Javascript更改CSS值

用javascript设置内联CSS值很容易。 如果我想改变宽度,我有这样的HTML: <div style="width: 10px"></div> 我所需要做的是: document.getElementById('id').style.width = value; 它将改变内联样式表的值。 通常这不是问题,因为内联样式会覆盖样式表。 例: <style> #tId { width: 50%; } </style> <div id="tId"></div> 使用这个Javascript: document.getElementById('tId').style.width = "30%"; 我得到以下内容: <style> #tId { width: 50%; } </style> <div id="tId" style="width: 30%";></div> 这是一个问题,因为我不但不想改变内联值,如果我在设置之前查找宽度,当我有: <div id="tId"></div> 返回的值是Null,所以如果我有Javascript需要知道的东西的宽度做一些逻辑(我增加了1%的宽度,而不是一个具体的价值),当我期望string“50% “并不真正的工作。 所以我的问题:我有CSS样式的值不在内联,我怎么能得到这些值? 如何修改样式而不是内联值,给定一个ID?

改变链接与jQuery的HTML文本

这里有个简单的问题 有没有办法改变文字“点击这里” <a id="a_tbnotesverbergen" href="#nothing">click here</a> 在这个链接 理查德

最佳实践:通过HTML标识或名称属性访问表单元素?

正如任何经验丰富的JavaScript开发人员所知道的,有很多(太多)方法可以做同样的事情。 例如,假设你有一个文本字段如下: <form name="myForm"> <input type="text" name="foo" id="foo" /> 有很多方法可以在JavaScript中访问: [1] document.forms[0].elements[0]; [2] document.myForm.foo; [3] document.getElementById('foo'); [4] document.getElementById('myForm').foo; … and so on … 方法[1]和[3]在Mozilla Gecko文档中有详细logging,但都不是理想的。 [1]只是太泛泛而无用,[3]需要一个id和一个名字(假设你将数据发布到服务器端语言)。 理想情况下,最好只有id属性或name属性(两者都有些多余,特别是如果id不是任何css所必需的,并增加了拼写错误的可能性等)。 [2]似乎是最直观的,它似乎被广泛使用,但我没有看到它在Gecko文档中引用,我担心向前兼容性和跨浏览器兼容性(当然,我想成为作为尽可能符合标准)。 那么这里最好的做法是什么? 任何人都可以指出可以解决这个问题的DOM文档或W3C规范的东西? 注意我特别感兴趣的是非库解决scheme(jQuery / Prototype)。

如何获得滚动条位置的Javascript?

我试图用JavaScript来检测浏览器滚动条的位置,以决定当前视图在页面中的位置。 我的猜测是,我必须检测到轨道上的拇指在哪里,然后拇指的高度占轨道总高度的百分比。 我是否过度复杂化,还是JavaScript提供了一个比这更简单的解决scheme? 任何想法代码明智?

如何将DOM元素设置为第一个孩子?

我有元素E,我正在附加一些元素。 突然之间,我发现下一个元素应该是E的第一个孩子。怎么办? 方法unshift不工作,因为E是一个对象,而不是数组。 很长的路要迭代槽E的孩子,并move'em键++,但我相信有一个更漂亮的方式。

JavaScript通过名称获取元素

考虑这个function: function validate() { var acc = document.getElementsByName('acc').value; var pass = document.getElementsByName('pass').value; alert (acc); } 而这个HTML部分: <table border="0" cellpadding="2" cellspacing="0" valign="top"> <tr> <td class="td1">Account</td> <td class="td2"><input type="text" name="acc" /></td> </tr> <tr class="td1"> <td>Password</td> <td class="td2"><input type="password" name="pass" /></td> </tr> </table> <div><button onClick="validate()" class="cupid-greenx">Login now</button></div> 警告框正在显示,但显示“未定义”。

违规长时间运行的JavaScript任务花费了xx ms

最近我得到了这样的警告,说实话这是我第一次得到这样的警告: [Violation] Long running JavaScript task took 234ms [Violation] Forced reflow while executing JavaScript took 45ms 我正在做一个小组项目,我不知道它来自哪里。 这从来没有发生过。 突然出现当别人参与这个项目的时候。 我怎么find哪个文件/函数导致这样的警告? 我一直在寻找答案,但主要是关于如何解决它的解决scheme。 如果我找不到问题的根源,我无法解决。 注意:在这种情况下,警告只出现在chrome上。 我试图用Edge,没有得到任何类似的警告。 还没有在Mozilla上testing过。 更新:我甚至从jquery.min.js得到的错误说: [Violation] Handler took 231ms of runtime (50ms allowed) jquery.min.js:2 任何答案是非常赞赏。

是innerHTMLasynchronous?

我希望我不会愚弄自己,但是我正试图理解这两行代码中发生的事情: document.body.innerHTML = 'something'; alert('something else'); 我正在观察的是,HTML更新之前的警报显示(或者它已经有了,但是页面还没有被刷新/重新绘制/不pipe) 检查这codepen看看我的意思。 请注意,即使将alert置于setTimeout(…, 0)也无济于事。 看起来像更多的事件循环innerHTML实际更新页面。 编辑: 我忘了提及我正在使用Chrome浏览器,并没有检查其他浏览器。 看起来像只在Chrome中可见。 不过,我仍然感兴趣为什么会发生这种情况。