Tag: DOM

通过javascript删除html元素样式

我试图replace元素的内联样式标记值。 当前元素如下所示: `<tr class="row-even" style="background: red none repeat scroll 0% 0%; position: relative; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" id="0000ph2009-06-10s1s02">` 我想删除所有的风格的东西,所以它的风格,而不是它的内联风格。 我试过删除element.style; 和element.style = null; 和element.style =“”; 无济于事。 我目前的代码在这些声明中断了。 整个function如下所示: 函数unSetHighlight(index){ if(index < 10) index = "000" + (index); else if (index < 100) index = "000" + (index); else if(index < 1000) index = […]

取消后如何继续事件传播?

当用户点击某个链接时,我想给他们一个确认对话框。 如果他们点击“是”,我想继续原来的导航。 一个catch:我的确认对话框是通过返回一个jQuery.Deferred对象来实现的,只有当用户点击Yesbutton时才parsing。 所以基本上确认对话框是asynchronous的。 所以基本上我想要这样的东西: $('a.my-link').click(function(e) { e.preventDefault(); e.stopPropogation(); MyApp.confirm("Are you sure you want to navigate away?") .done(function() { //continue propogation of e }) }) 当然,我可以设置一个标志,并重新触发点击,但这是混乱的。 任何自然的方式呢?

jQuery点击函数在ajax调用后不起作用?

jQuery点击function在这里工作正常 <div id="LangTable"><a class="deletelanguage">delete</a></div> $('.deletelanguage').click(function(){ alert("success"); }); 但如果我通过ajax设置一些<a> , $('.deletelanguage').click不起作用。 例如 function CreateRow(jdata) { $('#LangTable').append('<a class="deletelanguage">delete</a>'); } $.ajax({ url: "/jobseeker/profile/", success: CreateRow }); 现在$('.deletelanguage').click最后一个<a>不起作用。 jsfiddle例子: http : //jsfiddle.net/suhailvs/wjqjq/ 注意:CSS在这里工作正常。 我想使这些新添加的<a>与jQuery点击工作。

React renderToString()性能和cachingReact组件

我注意到reactDOM.renderToString()方法在服务器上渲染一个大的组件树时开始明显变慢。 背景 一点背景。 该系统是一个完全同构的堆栈。 最高级别的App组件呈现模板,页面,DOM元素和更多的组件。 看看反应代码,我发现它呈现~1500个组件(这包括任何简单的dom标记,被视为一个简单的组件, <p>this is a react component</p> 。 在开发中,渲染〜1500个部件需要200〜300ms。 通过去除一些组件,我能够在〜175-225ms内获得1200个组件。 在生产中,〜1500组件上的renderToString需要约50-200ms。 时间似乎是线性的。 没有一个组件是缓慢的,而是多数的总和。 问题 这会在服务器上造成一些问题。 冗长的方法会导致较长的服务器响应时间。 TTFB比应该高很多。 使用api调用和业务逻辑,响应应该是250ms,但是使用250ms的renderToString会增加一倍! 对SEO和用户不利。 另外,作为一个同步方法, renderToString()可以阻塞节点服务器并备份后续请求(这可以通过使用2个独立的节点服务器来解决:1作为Web服务器,1作为服务来完成呈现反应)。 尝试 理想情况下,在生产中使用ToString需要5-50ms。 我一直在做一些想法,但我不确定最好的方法是什么。 想法1:caching组件 任何标记为“静态”的组件都可以被caching。 通过使渲染标记保持caching, renderToString()可以在渲染之前检查caching。 如果它find一个组件,它会自动抓取该string。 在高级别组件中执行此操作将保存所有嵌套的子组件的安装。 您将不得不用当前的rootIDreplacecaching的组件标记的反应rootID。 想法2:标记组件简单/哑巴 通过将组件定义为“简单”,反应应该能够在渲染时跳过所有的生命周期方法。 React已经为核心反应dom组件( <p/> , <h1/>等)做了这个。 将很好扩展自定义组件使用相同的优化。 想法3:跳过服务器端渲染组件 不需要由服务器返回的组件(没有SEO值)可以简单地在服务器上跳过。 一旦客户端加载,将clientLoaded标志设置为true ,并将其传递给强制执行重新呈现。 closures和其他尝试 到目前为止我唯一的解决scheme是减less在服务器上呈现的组件数量。 我们正在看的一些项目包括: React-dom-stream https://github.com/aickin/react-dom-stream (仍在努力实现这个testing) 巴别克内联元素https://babeljs.io/docs/plugins/transform-react-inline-elements/ (看起来这是沿着想法2的线) 有没有人遇到类似的问题? […]

使用javascript将img元素添加到div

我正在尝试使用JavaScript将img添加到placehere div,但是我没有运气。 任何人都可以用我的代码给我一个手吗? <html> <script type="text/javascript"> var elem = document.createElement("img"); elem.setAttribute("src", "images/hydrangeas.jpg"); elem.setAttribute("height", "768"); elem.setAttribute("width", "1024"); elem.setAttribute("alt", "Flower"); document.getElementById("placehere").appendChild("elem"); </script> <body> <div id="placehere"> </div> </body> </html>

Java:如何通过org.w3c.dom.document上的xpathstring来定位元素

如何通过给定的org.w3c.dom.document上的xpathstring快速定位元素/元素? 似乎没有FindElementsByXpath()方法。 例如 /html/body/p/div[3]/a 当发现有很多同名的元素时,我发现迭代遍历所有的子节点级别会很慢。 有什么build议么? 我不能使用任何parsing器或库,只能使用w3c dom文档。

Uncaught TypeError:无法读取未定义的属性'top'

如果这个问题已经被回答,我很抱歉。 我试图寻找解决scheme,但无法find任何适合我的代码。 我还是新来的jQuery。 对于两个不同的页面,我有两种不同types的粘性菜单。 这是两个代码。 $(document).ready(function () { var contentNav = $('.content-nav').offset().top; var stickyNav = function () { var scrollTop = $(window).scrollTop(); if (scrollTop > contentNav) { $('.content-nav').addClass('content-nav-sticky'); } else {; $('.content-nav').removeClass('content-nav-sticky') } }; stickyNav(); $(window).scroll(function () { stickyNav(); }); }); $(document).ready(function () { var stickyNavTop = $('.nav-map').offset().top; // var contentNav = $('.content-nav').offset().top; var stickyNav […]

如何给Blob上传一个FormData文件名?

我目前正在使用下面的代码上传从剪贴板粘贴的图像: // Turns out getAsFile will return a blob, not a file var blob = event.clipboardData.items[0].getAsFile(), form = new FormData(), request = new XMLHttpRequest(); form.append("blob",blob); request.open( "POST", "/upload", true ); request.send(form); 发现上传的表单字段收到类似这样的名称:Blob157fce71535b4f93ba92ac6053d81e3a 有没有办法设置这个或接收这个文件名客户端,而不做任何服务器端通信?

jQuery:如何更改标签名称?

jQuery:如何更改标签名称? 例如: <tr> $1 </tr> 我需要 <div> $1 </div> 我可以 创buildDOM元素<div> 将tr内容复制到div 从dom中删除tr 但是,我可以直接吗? PS: $(tr).get(0).tagName = "div"; 导致DOMException 。

如何使用jQueryselect一个子元素?

使用jQuery如何select一个子元素? 我已经看了遍历API,并知道我可以select像这样的所有直接的孩子img元素: $(this).children('img'); 而要select第一个孩子的img元素,我可以使用这样的下标: $(this).children('img')[0]; 但我想我有点惊讶我不能这样做: $(this).child('img'); // no subscript, returns single element 还是我错过了什么?