如何使用JavaScript获取HTML页面的标题?
<input type="checkbox" onclick="onClickHandler()" onchange="onChangeHandler()" />
Run Code Online (Sandbox Code Playgroud)
从内部onClickHandler和/或onChangeHandler,我如何确定复选框的新状态?
我正在尝试测试DOM元素是否存在,如果它存在则删除它,如果它不存在则创建它.
var duskdawnkey = localStorage["duskdawnkey"];
var iframe = document.createElement("iframe");
var whereto = document.getElementById("debug");
var frameid = document.getElementById("injected_frame");
iframe.setAttribute("id", "injected_frame");
iframe.setAttribute("src", 'http://google.com');
iframe.setAttribute("width", "100%");
iframe.setAttribute("height", "400");
if (frameid) // check and see if iframe is already on page
{ //yes? Remove iframe
iframe.removeChild(frameid.childNodes[0]);
} else // no? Inject iframe
{
whereto.appendChild(iframe);
// add the newly created element and it's content into the DOM
my_div = document.getElementById("debug");
document.body.insertBefore(iframe, my_div);
}
Run Code Online (Sandbox Code Playgroud)
检查它是否存在有效,创建元素有效,但删除元素则不起作用.基本上所有这些代码都是通过单击按钮将iframe注入网页.我想要发生的是iframe已经在那里删除它.但由于某种原因,我失败了.
如何检查一个DOM元素是否是另一个DOM元素的子元素?这有什么内置的方法吗?例如,类似于:
if (element1.hasDescendant(element2))
Run Code Online (Sandbox Code Playgroud)
要么
if (element2.hasParent(element1))
Run Code Online (Sandbox Code Playgroud)
如果没有那么任何想法如何做到这一点?它还需要跨浏览器.我还应该提到,孩子可以嵌套在父母以下的许多级别.
仅使用JavaScript,选择具有特定data-属性的所有DOM元素的最有效方法是什么(比方说data-foo).元素可以是不同的标记元素.
<p data-foo="0"></p><br/><h6 data-foo="1"></h6>
Run Code Online (Sandbox Code Playgroud) 有没有办法转换HTML像:
<div>
<a href="#"></a>
<span></span>
</div>
Run Code Online (Sandbox Code Playgroud)
或任何其他HTML字符串到DOM元素?(这样我就可以使用appendChild())了.我知道我可以做.innerHTML和.innerText,但这不是我想要的 - 我真的希望能够将动态HTML字符串转换为DOM元素,以便我可以在.appendChild()中传递它.
更新:似乎有困惑.我有一个字符串中的HTML内容,作为JavaScript中变量的值.文档中没有HTML内容.
我在DOM中有一个Angular模板.当我的控制器从服务获取新数据时,它会更新$ scope中的模型,然后重新呈现模板.到目前为止都很好.
问题是我需要在模板重新渲染之后做一些额外的工作并且在DOM中(在这种情况下是一个jQuery插件).
似乎应该有一个事件要听,比如AfterRender,但我找不到任何这样的东西.也许一个指令是一种可行的方式,但它似乎也太早了.
这是一个概述我的问题的jsFiddle:Fiddle-AngularIssue
==更新==
根据有用的评论,我相应地切换到一个指令来处理DOM操作,并在指令中实现了一个模型$ watch.但是,我仍然有同样的基础问题; $ watch事件内部的代码在模板编译并插入DOM之前触发,因此,jquery插件总是在评估一个空表.
有趣的是,如果我删除异步调用,整个过程就可以了,所以这是朝着正确方向迈出的一步.
这是我更新的小提琴反映这些变化:http://jsfiddle.net/uNREn/12/
我有以下HTML节点结构:
<div id="foo">
<div id="bar"></div>
<div id="baz">
<div id="biz"></div>
</div>
<span></span>
</div>
Run Code Online (Sandbox Code Playgroud)
我如何计算foo类型的直系子女的数量div?在上面的例子中,结果应该是两个(bar和baz).
我很难找到从jquery选择器获取实际的DOMElement.示例代码:
<input type="checkbox" id="bob" />
var checkbox = $("#bob").click(function() { //some code } )
Run Code Online (Sandbox Code Playgroud)
在另一段代码中,我正在尝试确定复选框的选中值.
if ( checkbox.eq(0).SomeMethodToGetARealDomElement().checked )
//do something.
Run Code Online (Sandbox Code Playgroud)
请,我不想这样做:
if ( checkbox.eq(0).is(":checked"))
//do something
Run Code Online (Sandbox Code Playgroud)
这让我在复选框周围,但有时我需要真正的DOMElement.
我正在使用jQuery,我想检查页面中是否存在元素.我写了下面的代码,但它不起作用:
if($("#btext" + i) != null) {
//alert($("#btext" + i).text());
$("#btext" + i).text("Branch " + i);
}
Run Code Online (Sandbox Code Playgroud)
如何检查元素的存在?