Tag: dom

我该怎么做:用JavaScript选择一个段落(点击)?

是否可以使用JavaScript选择所有文本作为元素(例如,段落 )? 很多人认为jQuery .select()会这样做,但事实并非如此。 它只是触发一个事件。 请注意, 元素的DOM对象具有本机select()方法,但大多数其他元素(例如和 )则不具有。 (我是否需要使用content-editable才能使其正常工作?)

如何使用jquery删除noscript标签包装器?

我想删除环绕图像的noscript标记: 我试过unwrap() ,但它在noscript中不起作用,接下来我尝试了html()方法: $(‘a’).html(function(index, oldhtml){ return oldhtml.replace(/\/g, ”); }); 虽然删除了标记,但它会生成一个字符串而不是DOM: ” ” 如何在保持img元素不变的同时删除noscript标记包装?

使用jQuery在树的中间插入(g)节点(SVG)

在树的中间插入节点的最佳建议/有效方法是什么。 如何转置这个 … … … … 对此 … … … … @jsFiddle 我试过了 var $parent = $(“g”).attr(“id”,”parent”); var $root = $(“#root”); $root.contents().each(function(){ $child=$(this); $child.remove(); $parent.append($child); }); $root.append($parent); 我也试过在这个答案中使用moveTo方法 (function($){ $.fn.moveTo = function(selector){ return this.each(function(){ var cl = $(this).clone(); $(cl).appendTo(selector); $(this).remove(); }); }; })(jQuery); $root.contents().each(function() { $(this).moveTo($parent); }); 所有这些方法都在简单的场景中工作,但是当树真的很大时,浏览器只是挂起,是否有更有效的方法来执行此操作? 我正在寻找一个jQuery或纯JavaScript的解决方案。

使用jquery在特定标记之前和之后向文本添加包装标记

我正在尝试在包含段落和中断标记的重复html块上创建详细信息和摘要标记结构。 我的div有一个特定的类,我想用jquery来查找内容。 具体来说,分配给我的css类的每个段落的第一个break标记将用作标记,第一个中断之前的所有内容都由 标记包装,整个匹配段落中的所有内容都包含在内部。标签对。 所以给出一个前后html的例子。 在改变之前,它看起来像这样…… this should be in a summarythis would be within the expandable details tag 它最终应该像…… this should be in a summarythis would be within the expandable details tag 我以为我使用以下代码… $(“.matchingClass”).each(function() { $(this).prepend(“”); $(this).find(“br”).first().before().prepend(“”); $(this).append(“”); }); 但我现在意识到jquery / javascript总是自动插入结束标签。 因此,只要我应用的3个命令中的第一个运行,html就不会结束我的预期。 有人可以帮忙吗?

如何选择所有列表项但列表项没有嵌套的子项或

我想选择“ .favdelParentFold ”子项中的所有列表项,但要确保列表项没有任何嵌套的 子项。 如果列表项具有任何嵌套子项“ ”,我不想触发它。 HTML fold2press me One 1press me Two 2press me Three 3press me Four 4press me four 1.1 four 1.2 JS档案: $(document).ready(function () { $(“.favdelParentFold ~ ul li.trashcan”).click(function () { var tr = $(this).prev(‘span’).text(); var pa = $(this).closet().text(); alert(tr); alert(pa); }); }); EX: 如果我点击一个1,两个2,三个3我可以得到这个值和父值,但是四个4有 孩子我想避免触发器。 预期的o / p: 如果点击“一个1”我需要得到一个1和fold2 如果点击“一个2”我需要得到一个2和fold2 […]

什么时候由jQuery / Ajax加载的DOM脚本实际执行了?

好吧,我觉得有点愚蠢不得不问这个。 在类似的问题上有任意数量的点击,但我似乎无法做到正确。 如果我通过jQuery / Ajax修改DOM,何时加载的脚本实际被解析/执行? 以下代码适用于F / F,但不适用于Chrome或Opera。 ‘Working’意味着它执行’do_init()’而不会出错。 加载的脚本(实际上是一个svg文件;’file.svg’)定义了’do_init()’(在’静态’脚本中)所需的许多变量。 这些变量对F / F是可见的,但对Chrome或Opera不可见(“变量xxx未定义”)。 在所有3种情况下,文件/脚本都正确加载到DOM中,并且包含 ,其中包含 。 我可以通过重新安排代码在Opera(或F / F中断)中使用它(svg显示),但不能在Chrome中使用。 使用.success和.complete没有任何区别。 谢谢。 … Click Me! 编辑1 事实certificate,它们从未被执行过 – 至少在IE9,FF8,Chrome,Opera和Safari中。 它们在FF7 中执行。 我刚刚编写了一个最小的测试页面来执行脚本的Ajax加载,这只是一个警报。 这仅显示FF7中的警报。 我也尝试过包含在的脚本,这没什么区别。

使用JQuery,当DOM元素调用.remove()时,是否可以运行函数?

正如问题所述,我正在尝试做的是从DOM中删除DOM元素时调用的函数,就像析构函数一样。 我查看卸载,但从我的理解,只有当浏览器导航离开页面时才会调用。 提前致谢!

jQuery Mobile:如何使用动态DOM操作刷新页面?

我用jQuery Mobile创建了一个页面,并尝试动态添加内容: $(function () { $(“#deviceTarget”).sortable({ revert: true }); $(“body > div[data-role=’page’]”).append($(“Header”)); $(“body > div[data-role=’page’]”).append($(“Footer”)); $.mobile.activePage.trigger(“create”); }); $(document).bind(‘mobileinit’,function(){ $.mobile.defaultPageTransition = ‘none’; $.mobile.selectmenu.prototype.options.nativeMenu = false; }); function refreshPage() { $.mobile.activePage.trigger(“create”); } 但我得到了结果 (图片)。 我想得到结果 (图片)。 我能怎么做? 谢谢。

知道所有其他准备好的回调何时完成

我想在完成所有其他处理程序后,我的处理程序就会触发ready事件。 这对于操纵插件的不良操作非常方便。 如果我在所有其他人之后编写我的处理程序,它只能保证它会在所有其他人被解雇后触发 ,而不是完成: $(function() { setTimeout(function() { alert(‘other handler’); }, 500); }); $(function() { alert(‘my handler’); });​ 小提琴 在该代码中, 我的处理程序首先发出警报 我在jQuery 1.4版之前读到了readyList是公开的。 所以在1.7版本中,我不知道如何判断我的处理程序是否是最后一个处理程序。

如何将DOM附加到Angular 2组件并仍然获取封装样式

我正在升级现有的Angular 2应用程序,该应用程序大量使用JQuery插件,D3,甚至一些React组件(所有这些都使用sizzle所以我很确定它适用于所有)。 因为一次重写所有这些实际上没有意义,我试图将它们中的一些包装在Angular 2 Component中。 为了向您展示我的意思,我有一个使用Jquery将项添加到DOM的简单组件… import { Component, AfterViewInit, ElementRef } from ‘@angular/core’; declare var $:JQueryStatic; @Component({ selector: ‘px-spinner’, template: String(require(‘./spinner.template’)), styles: [require(‘!raw!stylus-loader!./spinner.styles’)] }) export class SpinnerComponent implements AfterViewInit{ constructor(public el:ElementRef){} ngAfterViewInit(){ $(this.el.nativeElement).append(“Output 2″) } } 这里的问题是样式不适用于输出2.当我看到DOM时,原因变得明显…… output 1 Output 2 由JQuery添加的DOM元素缺少_ngcontent-ylc-1=”” 。 当JQuery注入DOM时,有没有办法让Ng2添加它? 更新 问题类似于这个问题( Angular2 – 将[_ngcontent-mav-x]添加到样式中 )但我想问题是如何在ViewEncapsulation中包含注入的dom?