Tag: dom

从HTML链接时,javascript文件无法正常工作

所以我觉得(希望)这很简单。 我是javascript的新手,我正在努力让这个工作。 当我从我的html链接到我的外部.js文件时,它不起作用。 但是,当将脚本代码直接输入我的HTML时,它就可以工作了。 这是js文件: $(document).ready(function(){ $(“#flip”).click(function(){ $(“#panel”).slideToggle(“slow”); }); }); 这是index.html文件: slidepanel test Click to slide the panel down or up Hello world! 这是CSS: #panel,#flip { padding:5px; text-align:center; background-color:#e5eecc; border:solid 1px #c3c3c3; } #panel { padding:50px; display:none; }

忽略 标记的JQuery .append

我有以下HTML: Hide or show labels? Show Label Hide Label 我想在运行时将到父div,ala: $(“#show-label”).html(“”) .append(“Hide or show labels?”) .append(“Show Label”) .append(“Hide Label”) .append(“”); 对于我不知道的resons,结束标记不会被注入页面。 我已经尝试过上面的代码以及类似的东西: .append(“Hide Label”) 是否有一些关于将这些元素“批处理”为单个.append的要求? 我想知道这种方法在加载到DOM时看起来是不是很好,所以它被忽略了…… 谢谢!

在单击处理程序甚至被调用之前,正在检查复选框

我有以下几个片段: http : //jsfiddle.net/L7rne/5/和http://jsfiddle.net/L7rne/6/ 事实certificate,如果您在click事件处理程序中暂停执行脚本,那么即使存在event.preventDefault() ,也会选中该复选框。 我在Firefox 7和Chrome 15中尝试了这一点,两者的行为方式相同。 我几乎可以肯定这是一个正确的行为,但不知怎的,我找不到任何参考为什么它是这样的。 有人能指出我正确的方向吗? 编辑: 当你选中复选框后,它变得更加有趣: http : //jsfiddle.net/L7rne/8/ – 复选框变为未选中状态,但其值仍保持检查状态 http://jsfiddle.net/L7rne/9/ – 复选框变得不受控制,但它的价值变得虚假 (这与使用checkbox.checked和checkbox.getAttribute(‘checked’)纯Javascript代码一致,所以我没有粘贴另一个jsfiddle代码段) EDIT2: 其中一条评论中的COBOLdinosaur向我指出 : http : //www.w3.org/TR/DOM-Level-2-Events/events.html#Events-flow-cancelation ,但恕我直言,这只能证实我的观点…

getElementById仅为第一个元素返回值

我有一个脚本,在一些生成的元素上请求调用,并按ID选择指定的元素。 我遇到的奇怪问题是,select非常适用于页面上的第一个项目,但对于每个其他项目都返回null。 可能是什么原因造成的? 这是相关的Javascript: function showFrame(content, id, vid, crating) { var container = document.getElementById(vid+’_container’); $(‘#’+vid+’_embed’).html(content); $(‘#’+vid+’_embed iframe’).attr(‘SCROLLING’, ‘YES’); var linkform = document.getElementById(vid + ‘_linkform’); linkform.setAttribute(‘action’, ‘{{ url(‘/links/reportLink/’) }}’ + ‘/’ + id); $(document).on(‘submit’, ‘#’ + vid+ ‘_linkform’, function() { $.ajax({ url : $(this).attr(‘action’), type : $(this).attr(‘method’), data : $(this).serialize(), beforeSend: function() { $(‘#ajax-loading’).show(); }, success […]

如何在jquery中正确缓存DOM元素?

我在从命名空间变量访问缓存的DOM元素时遇到了一些麻烦。 我的FeedManager配置变量是这样的: var FeedManager = { config : { $feedContainer : $(‘#feedContainer’), feedUrl : ‘http://rss……’, feedLimit : 10 },…. 这里$ feedContainer是html中的ul元素。 我想添加从feed构建的li元素。 我在FeedManager对象中有一个函数init()。 但不知怎的,它无法添加子元素。 init: function(){ var feed = new google.feeds.Feed(FeedManager.config.feedUrl); …… …… // this is not working FeedManager.config.$feedContainer.append(li); 但如果在init()函数内部,我再次获得feedContainer元素,它的工作原理! var feedContainer = $(‘#feedContainer’); feedContainer.append(li); 可能是什么问题? 以及如何在配置对象中使用初始化的缓存dom元素。

有没有jQuery / sizzle的替代品支持textNodes作为选择器中的头等公民?

我发现我需要完全支持jQuery不提供的DOM textNode的选择器。 jQuery忽略了文本节点,可能是因为大多数页面在各种浏览器可以区别对待的标签之间有大量不相关的空白。 关于文本节点的jQuery问题的大多数答案归结为使用.contents()函数,该函数返回所选项的所有子节点,包括文本节点 – 所有其他jQuery API忽略文本节点。 通常你不需要一些不能轻易建立起来的东西.contents()但我发现自己处于这样的境地。 我的用例是我想找到并在第三方网页中包装我无法控制的任意文本。 (想想浏览器扩展或用户脚本。) 到目前为止,我一直很乐意遍历DOM寻找所有文本节点或找到包含我感兴趣的所有文本节点的包装元素,并使用.contents()来迭代它们。 但是现在我发现我有时需要jQuery / sizzle选择器的全部function来将我的注意力缩小到类中的类的某些可能性等。 我考虑了使用textNode选择器扩展jQuery的方法,但这似乎是不可能的,因为忽略文本节点的普遍规则会在我的扩展被调用之前过滤掉其中的许多节点。 因此,我正在寻找一些其他JavaScript工具,它提供类似选择器的东西,但允许选择在其选择器表达式语法中任意混合的文本节点。 这是我可能需要做的一个例子: $(‘.ii:even > div > TXT, .ii:even > div > div.im > TXT’) 这是我个人尚未需要但可以轻易想象的一个例子: $(‘#something .somethingElse TXT’) 当你可以寻址(选择)textNodes的直接父代时,迭代它们的.contents()很容易,当你只能识别一些任意的祖先但是想要下面的所有文本节点时,这当然不是这样,这当然是元素节点很简单。

从jQuery选择器创建DOM元素

我想知道是否有可能,而不是通过jQuery选择器从DOM中选择一个元素,如果我可以创建一个。 例如: $.create(‘#hello’).insertAfter(‘#test’); 会生成以下内容: This element already existed in the DOM. 或者,更好的是,对于更复杂的操作: $.create(‘#test.a.b’); 对于: 显然,更复杂的操作如:selected或:nth-​​child或:not()以及所有这些操作都不需要实现。 有人知道解决方案吗? 谢谢。

使用jquery修改textarea上的撤消/重做行为

当用户从上下文菜单中选择撤消/重做或在textarea中按ctrl z时,我需要处理撤消和重做的事件。 如何防止默认行为并添加自定义行为。

清除div的文本,但使用jquery 保留子节点

可能重复: jQuery:如何删除文本但不删除子元素 text of parent 在上面的例子中,我想只清除父div ( parent )的文本”text of parent” ,保持子节点( child 1 , child2 )不变。 我怎么能用jQuery做到这一点?

在JavaScript和jQuery中使用委托事件处理程序是否存在性能缺陷?

我在我的JavaScript代码中使用委托事件处理程序(jQuery),因此当单击动态添加按钮时会发生这种情况。 我想知道这有性能上的缺点吗? // Delegated event handler $(document).on(‘click’, ‘#dynamicallyAddedButton’, function(){ console.log(“Hello”); }); 性能方面,它与此相比如何? // Regular event handler $(“#regularButton”).on(‘click’, function(){ console.log(“Hello Again”); }); 看一下jQuery文档 ,似乎事件总是在DOM树上一直冒泡。 这是否意味着进一步嵌套元素,事件需要工作的时间越长? 编辑: 使用JavaScript的事件委托而不是jQuery是否有性能优势? 问一个类似的问题,答案是有用的。 我想知道使用常规事件处理程序和委托事件处理程序之间的区别。 链接的问题使得事件似乎不断冒出DOM树。 使用委托事件处理程序,事件会冒泡到顶部,然后返回到指定的元素吗?