Tag: DOM

在IE中dynamic设置input元素的id属性:setAttribute方法的替代方法

我正在寻找dynamic设置在我的应用程序中dynamic创build的HTML Input元素的ID属性。 我的实现可以在Firefox中使用setAttribute方法。 任何想法或解决scheme在IE中的工作实现将不胜感激。 var hiddenInput = document.createElement("input"); hiddenInput.setAttribute("id", "uniqueIdentifier"); hiddenInput.setAttribute("type", "hidden"); hiddenInput.setAttribute("value", ID); hiddenInput.setAttribute("class", "ListItem"); 我修改了一些与这个问题有关的博客示例代码,这些代码提示了下面的工作。 再次,Firefox的位运作良好,但IE位不行 var hiddenInput = null; try { hiddenInput = document.createElement('<input name=\''+"hiddenInputName"+'\' />'); hiddenInput.id = "uniqueIdentifier"; //alert(document.getElementById("uniqueIdentifier")); hiddenInput.type = "hidden"; } catch (e) { } if (!hiddenInput || !hiddenInput.name) { // Not in IE, then var hiddenInput = document.createElement("input"); […]

如何访问与D3 SVG对象相关的DOM元素?

我试着通过尝试一下他们的基本泡泡图来学习D3。 第一个任务:弄清楚如何拖拽一个气泡,并在被拖拽时变成最上面的对象。 (问题是D3的对象模型映射到DOM,但我会到达那里…) 要拖动它,我们可以使用它们提供的代码简单地调用d3的拖动行为: var drag = d3.behavior.drag() .on("dragstart", dragstart) .on("drag", dragmove) .on("dragend", dragend); 很好用。 拖得很好。 现在,我们如何才能成为最重要的项目呢? 在这里search“svg z-index”,很明显,改变索引的唯一方法是在DOM中进一步移动对象。 好。 它们并不容易,因为单个的泡泡没有ID,但是搞乱了控制台,我们可以find其中一个泡泡对象: $("text:contains('TimeScale')").parent() 我们可以将它移动到包含svg元素的末尾: .appendTo('svg') 这样做后拖动它,这是最高的项目。 到目前为止, 如果您完全在DOM中工作,那么这么好。 但是:我真正想要做的就是自动发生一个给定的对象/泡泡拖动。 D3为dragstart()和dragend()函数提供了一个模型,这将允许我们在拖动过程中embedded一条语句来执行我们想要的操作。 D3提供了d3.select(this)语法,它允许我们访问d3的当前拖动的对象/气泡的对象表示。 但是,我该如何干净地将这个庞大的数组返回到一个可以与之交互的DOM元素的引用中 – 例如,将其移动到svg容器的末尾,或者在DOM中执行其他引用,例如表单提交?

INPUT元素的“change”和“input”事件有什么区别?

有人能告诉我change和input事件之间的区别是什么? 我正在使用jQuery来添加它们: $('input[type="text"]').on('change', function() { alert($(this).val()); }) 它也适用于input而不是change 。 也许在事件顺序相对于重点有所不同?

使用jQuery创build嵌套HTML元素的最佳方法

如果我需要创build几个嵌套的DOM元素,我知道一个办法,就是把它们写成长string,然后使用合适的jQuery函数将它们放在文档中。 就像是: elem.html( '<div class="wrapper"> <div class="inner"> <span>Some text<span> </div> <div class="inner"> <span>Other text<span> </div> </div>'); 这样显然不是最干净的。 刺痛并不需要太长的时间,而且编辑也成为一个问题。 我更喜欢这个符号: $('<div></div>', { class : 'inner' }) .appendTo( elem ); 问题是我不知道如何像上面那样快速创build嵌套元素时有效地实现它。 所以如果有第二个符号的第一个例子的话,我会很高兴的了解它。 基本上,问题是,什么是dynamic创build嵌套HTML元素的最佳方式,而不必处理凌乱的长string? 注意:我知道模板引擎。 然而,这是一个关于即时创build几个HTML元素的问题。 就像为插件或类似情况构buildDOM依赖关系一样。

jQuery – 查找包含特定文本的表格单元格的表格行

我需要得到一个包含特定文本的td元素的tr元素。 td将包含该文本,只有文本(所以我需要text = 'foo'不是text contains 'foo'逻辑)。 所以我需要相当于下面的“伪jQuery”: var tableRow = $(table td[text = 'foo']).parent('tr'); 任何人都可以提供正确的语法?

DOMparsing器,允许使用HTML5风格的</ in <script>标记

更新 : html5lib (问题的底部)似乎接近,我只需要提高我的理解如何使用。 我正在尝试为PHP 5.3find一个兼容HTML5的DOMparsing器。 特别是,我需要在脚本标记中访问以下类似HTML的CDATA: <script type="text/x-jquery-tmpl" id="foo"> <table><tr><td>${name}</td></tr></table> </script> 大多数parsing器会提前parsing,因为HTML 4.01在<script>标签内findETAGO( </ )时会结束脚本标签parsing 。 但是,HTML5 允许在</script>之前。 到目前为止我所尝试过的所有parsing器都没有成功,或者它们的logging太差,以至于我没有弄清楚它们是否工作。 我的要求: 真正的parsing器,而不是正则expression式黑客。 能够加载完整页面或HTML片段。 能够拉出脚本内容 ,通过标签的id属性进行select。 input: <script id="foo"><td>bar</td></script> 输出失败的示例(不结束</td> ): <script id="foo"><td>bar</script> 一些parsing器及其结果: DOMDocument (失败) 资源: <?php header('Content-type: text/plain'); $d = new DOMDocument; $d->loadHTML('<script id="foo"><td>bar</td></script>'); echo $d->saveHTML(); 输出: Warning: DOMDocument::loadHTML(): Unexpected end tag : td […]

createElement与createElementNS

这两者之间真正的区别是什么? 我的意思是真实的本质区别。 定期的createElement的未来是什么? SVG是XML,而不是HTML。 我明白了。 所以我们使用createElementNS(ns_string, 'svg')然后setAttributeNS(null,,) 。 为什么? 为什么不setAttributeNS('my_ns',,) ? 为什么必须ns_string是http://www.w3.org/2000/svg而不是一些随机string? 如果只有一个命名空间,命名空间的目的是什么? ns在普通html中的用途是什么? 我是否应该将现有代码中的createElement所有实例更改为createElementNS ? 我正在阅读DOM-Level-2规范。 但我仍然感到困惑。

在Javascript中,将NodeList转换为数组的最佳方法是什么?

DOM方法document.querySelectorAll() (和其他几个)返回一个NodeList 。 要在列表上进行操作,例如使用forEach() ,必须先将NodeList转换为Array 。 什么是将NodeList转换为Array的最佳方式?

Knockout.js获取与数据关联的dom对象

我正在与knockout.jsbuild立dynamic列表,我想弄清楚如何可以得到DOM对象与我的可观察数组中的对象相关联。 具体而言,我想获得一行jQuery。 例: <ul data-bind="foreach: Item"> <li data-bind="events: {click: getDomObject}, text: 'text: ' + text"> </li> </ul> 在getDomObject函数中,我希望能够获得特定的<li></li> DOM对象,以便我可以对它进行一些jQuery操作。 我想添加一个id成员到项目ViewModel,然后添加id作为行项目的html id,然后select基于此,但我觉得应该有一个更简单的方法。 引用knockout.js生成的dynamicHTML的正确方法是什么?

使用JavaScript设置数据属性

我正在使用DynaTree(https://code.google.com/p/dynatree),但我有一些问题,希望有人可以帮助.. 我在如下所示的页面上显示树: <div id="tree"> <ul> <li class="folder">Outputs <ul> <li id="item1" data="icon: 'base.gif', url: 'page1.htm', target: 'AccessPage'">Item 1 Title <li id="item2" data="icon: 'base.gif', url: 'page2.htm', target: 'AccessPage'">Item 2 Title <li id="item3" data="icon: 'base.gif', url: 'page3.htm', target: 'AccessPage'">Item 3 Title <li id="item4" data="icon: 'base.gif', url: 'page4.htm', target: 'AccessPage'">Item 4 Title </ul> </ul> </div> 不过,我试图改变项目上的图标,无论是否select或不使用JavaScript 。 我想要使​​用的新图标是base2.gif 我已经尝试使用以下,但它似乎并没有工作: […]