标签: dom

JavaScript中的children和childNodes有什么区别?

我发现自己使用JavaScript和我对面跑去childNodeschildren性能.我想知道它们之间的区别是什么.另一个是另一个优先选择?

javascript dom

279
推荐指数
3
解决办法
10万
查看次数

什么是使用纯JavaScript的"hasClass"函数?

你如何hasClass用简单的'JavaScript' 来做jQuery ?例如,

<body class="foo thatClass bar">
Run Code Online (Sandbox Code Playgroud)

什么是JavaScript方式询问是否<body>thatClass

javascript dom

278
推荐指数
12
解决办法
34万
查看次数

如何将参数传递给addEventListener监听器函数?

情况有点像 -

var someVar = some_other_function();
someObj.addEventListener("click", function(){
    some_function(someVar);
}, false);
Run Code Online (Sandbox Code Playgroud)

问题是someVar在侦听器函数内部的值是不可见的addEventListener,它可能被视为一个新变量.

javascript dom addeventlistener

275
推荐指数
17
解决办法
38万
查看次数

jQuery:text()和html()有什么区别?

jQuery中text()和html()函数有什么区别?

$("#div").html('<a href="example.html">Link</a><b>hello</b>');
Run Code Online (Sandbox Code Playgroud)

VS

$("#div").text('<a href="example.html">Link</a><b>hello</b>');
Run Code Online (Sandbox Code Playgroud)

jquery dom

267
推荐指数
7
解决办法
15万
查看次数

Node对象和Element对象之间的区别?

我在Node对象和Element对象之间完全混淆. document.getElementById()返回document.getElementsByClassName() Node 对象时返回NodeList对象(元素或节点集合?)

如果div是一个Element Object,那么div Node对象呢?

什么是节点对象?

文档对象,Element对象和Text Object也是Node对象吗?

根据David Flanagan的书"文档对象,其元素对象和文本对象都是节点对象".

那么为什么一个对象可以继承Element对象的属性/方法以及Node对象呢?

如果是,我猜Node类和Element Class在继承的原型树中是相关的.

 <div id="test">
           <p class="para"> 123 </p>
           <p class="para"> abc </p>
 </div>
 <p id="id_para"> next </p>

document.documentElement.toString();    // [object HTMLHtmlElement]

var div = document.getElementById("test");
div.toString();                         // [object HTMLDivElement]                       

var p1 = document.getElementById("id_para");
p1.toString();                          // [object HTMLParagraphElement]

var p2 = document.getElementsByClassName("para");
p2.toString();                          //[object HTMLCollection]
Run Code Online (Sandbox Code Playgroud)

html javascript dom

265
推荐指数
5
解决办法
10万
查看次数

JavaScript中的"提交不是函数"错误

谁能告诉我这段代码出了什么问题?我尝试使用JavaScript提交表单,但显示错误".submit不是函数".有关代码的更多详细信息,请参见下文:

<form action="product.php" method="get" name="frmProduct" id="frmProduct" enctype="multipart/form-data">

<input onclick="submitAction()" id="submit_value" type="button" name="submit_value" value="">

</form>

<script type="text/javascript">
    function submitAction()
    {
        document.frmProduct.submit();
    }
</script>
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

<script type="text/javascript">
    function submitAction()
    {
        document.forms["frmProduct"].submit();
    }
</script>
Run Code Online (Sandbox Code Playgroud)

两个都显示我同样的错误:(

html javascript dom submit

248
推荐指数
6
解决办法
17万
查看次数

如何在JavaScript中实现DOM数据绑定

请将此问题视为严格教育.我仍然有兴趣听到新的答案和想法来实现这一点

TL;博士

我如何使用JavaScript实现双向数据绑定?

数据绑定到DOM

通过数据绑定到DOM,我的意思是,例如,拥有一个a带有属性的JavaScript对象b.然后有一个<input>DOM元素(例如),当DOM元素改变时,a改变,反之亦然(也就是说,我的意思是双向数据绑定).

以下是AngularJS的示意图:

双向数据绑定

所以基本上我有类似的JavaScript:

var a = {b:3};
Run Code Online (Sandbox Code Playgroud)

然后输入(或其他形式)元素,如:

<input type='text' value=''>
Run Code Online (Sandbox Code Playgroud)

我希望输入的值是a.b值(例如),当输入文本发生变化时,我也想a.b改变.当a.bJavaScript发生变化时,输入会发生变化.

问题

在纯JavaScript中完成此操作的基本技术有哪些?

具体来说,我想要一个很好的答案来参考:

  • 如何绑定对象的工作?
  • 如何听取表格中的变化可能有效?
  • 是否有可能以简单的方式仅在模板级别修改HTML?我想不跟踪HTML文档本身的绑定,而只是跟踪JavaScript(使用DOM事件,并且JavaScript保持对所使用的DOM元素的引用).

我试过了什么?

我是Mustache的忠实粉丝,所以我尝试用它来模板化.但是,当我尝试执行数据绑定本身时遇到了问题,因为Mustache将HTML作为字符串处理,因此在得到结果之后,我没有引用viewmodel中对象的位置.我能想到的唯一解决方法是使用属性修改HTML字符串(或创建DOM树)本身.我不介意使用不同的模板引擎.

基本上,我有一种强烈的感觉,我正在使手头的问题变得复杂,并且有一个简单的解决方案.

注意:请不要提供使用外部库的答案,尤其是那些包含数千行代码的库.我已经使用了(并且喜欢!)AngularJS和KnockoutJS.我真的不想要"使用框架x"形式的答案.最理想的是,我希望未来的读者不知道如何使用许多框架来掌握如何自己实现双向数据绑定.我不希望得到一个完整的答案,而是一个能够理解这个想法的答案.

html javascript data-binding dom

234
推荐指数
10
解决办法
13万
查看次数

innerText和innerHTML之间的区别

是什么区别innerHTML,innerText并且childNodes[].value在JavaScript?

javascript dom

234
推荐指数
5
解决办法
27万
查看次数

如何使用jQuery按字母顺序对列表进行排序?

我有点超出我的深度,我希望这实际上是可能的.

我希望能够调用一个按字母顺序对列表中所有项目进行排序的函数.

我一直在浏览jQuery UI进行排序,但似乎不是这样.有什么想法吗?

javascript sorting jquery dom

231
推荐指数
7
解决办法
28万
查看次数

如何解决C:\ fakepath?

<input type="file" id="file-id" name="file_name" onchange="theimage();">
Run Code Online (Sandbox Code Playgroud)

这是我的上传按钮.

<input type="text" name="file_path" id="file-path">
Run Code Online (Sandbox Code Playgroud)

这是我必须显示文件完整路径的文本字段.

function theimage(){
 var filename = document.getElementById('file-id').value;
 document.getElementById('file-path').value = filename;
 alert(filename);
}
Run Code Online (Sandbox Code Playgroud)

这是解决我问题的JavaScript.但在警报值给了我

C:\fakepath\test.csv 
Run Code Online (Sandbox Code Playgroud)

和Mozilla给了我:

test.csv
Run Code Online (Sandbox Code Playgroud)

但我想要本地完全限定的文件路径.如何解决这个问题?

如果这是由于浏览器安全问题,那么应该采用哪种替代方法呢?

html javascript dom file-upload

231
推荐指数
7
解决办法
39万
查看次数