Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript e它通过独立监视其他内容来检测DOM是否准备就绪。对于常规DOM方法,现在不必担心_Javascript_Html_Css - Fatal编程技术网

Javascript e它通过独立监视其他内容来检测DOM是否准备就绪。对于常规DOM方法,现在不必担心

Javascript e它通过独立监视其他内容来检测DOM是否准备就绪。对于常规DOM方法,现在不必担心,javascript,html,css,Javascript,Html,Css,两个受影响的img标记被解析并转换为DOM元素。所以您知道可以选择它们(使用id属性和DOM文档方法),将它们保存到变量或对象/元素属性,然后。。。鼓轮。。。您还可以访问该元素上的属性和方法,以实现预期的结果 现在,页面已加载,标记已解析,您有一个脚本要在触发onload事件时运行,现在呢?好吧,你来写代码。当鼠标单击您要求特别“处理”的某个元素时,您要执行的操作是: 差不多就是这样。我知道这听起来很难,但你做的次数越多就越容易。您正在尝试的方法有几种(如CodeAddict演示的在DOM中交换

两个受影响的
img
标记被解析并转换为DOM元素。所以您知道可以选择它们(使用
id
属性和DOM文档方法),将它们保存到变量或对象/元素属性,然后。。。鼓轮。。。您还可以访问该元素上的属性和方法,以实现预期的结果

现在,页面已加载,标记已解析,您有一个脚本要在触发
onload
事件时运行,现在呢?好吧,你来写代码。当鼠标单击您要求特别“处理”的某个元素时,您要执行的操作是:

差不多就是这样。我知道这听起来很难,但你做的次数越多就越容易。您正在尝试的方法有几种(如CodeAddict演示的在DOM中交换元素的父标记值),但这是迄今为止最简单的方法,并且具有几乎相同的效果(出于您的目的,相同)

一旦您了解了更多内容,您就可以在代码中动态地查找、检测和操作在元素上或与元素一起执行的事件和其他相关操作,而无需事先了解它们的很多或任何内容


但现在不要担心这个水平。试试这个。然后使用。

我将在不为您编写代码的情况下引导您完成它

假设您有两个表,
tableA
tableB
。它们都有一个
tbody
和一个
tr
*。
tableA
将只有一个
td
单元格
tablB将有四个
td`单元

*
tr
是一个“表行”,
td
表数据
,因为表的大部分设计都是为了保存数据。 使用方法,您需要在文档对象中查找并选择元素的DOM节点。为此,最简单的方法是在要查找的元素上放置一个
id
属性。请记住,
id
属性对于页面应该是唯一的(无重复!)。这意味着
等是
img
元素的最终结果

旁注:HTML5允许<代码> ID>代码> s为代码> ID=“1”,但我认为这是一个糟糕的做法,建议不要使用该表单。这是一个原则问题

至此,您应该具有近似于以下内容的表标记:

table
    tbody
        tr
            td
                img id="imageLanding"
table
    tbody
        tr
            td
                img id="image1"
            td
                img id="image"
            td
                img id="image3"

... etc ...
DOM元素具有属性(“属性”的含义稍有不同)和方法。例如,
img
元素将有一个
src=“…”
属性,在本例中,该属性在
img
DOM元素上有一个相应的
element.src
属性。属性是在页面加载时提供给解析器的,属性是属性作为DOM节点在元素中的形式。在某些情况下,访问的属性可能不会以您认为的方式更新,这就是为什么会有区别

接下来,花一点时间考虑一下你对事件的描述会发生什么。将向某人提供两个表,并向他们提供在一个表中单击图像的选项,然后功能将用另一个表的一个图像交换单击的图像。粗体文本标识操作发生的所有位置,无论是在设置中还是在执行中。(从它的
td
中删除单击的图像,并在删除另一个图像后将其移动到另一个表是另一种方法;我在这里不演示这一点)

所以你必须等“事情”发生后再行动。这个“某物”是一个例子。所有DOM元素都支持某种类型的事件(但并非每种类型的元素都会发生相同的事件),这允许您在发生某些事情时执行某些操作:
ONclick
ONmouseover
ONmouseout
,等等。这是一个正在发生的事件。考虑:

放学回家后,我吃了一个三明治

注意,如果您使用属性或直接DOM属性来设置带有元素的事件处理程序,则需要将
on
附加到每个事件名称中。换句话说,
onclick
onmouseover
onsubmit
,用于在表单元素提交之前处理表单元素

使用DOM方法(首选
onclick=“stuff()”
)实际上意味着:

element.onclick = function(){};`
您看到的函数形式称为变量函数,以这种方式使用时,会将值返回到变量或其左侧的属性。这样做允许您使用变量名和添加的
()
调用该函数,即
myVar.myFunc()
或如图所示,
element.onclick()

请注意,还有另一种(“更好”的程度左右)方法可以将事件“附加”到元素,但我不想用太多的选项来混淆您。您还可以使用
函数名(){}
格式来声明,然后使用它的引用,例如
element.onclick=name。注意,当我这样做时,不使用
()
。否则,您将立即调用函数并将其返回的结果传递给变量。在大多数情况下,你不想这样做

现在,您已经大致了解了这两个表的标记和“事件”的布局。把这两个元素放在一起,我们有五个带有标识符的元素。查找这些元素的DOM方法是:

var img1 = document.getElementById('image1');
如果向其中输入不同的id,则会获得对元素的DOM节点的引用。在这一点上,您可以对它进行操作,从中获取类似属性值的内容,并为其指定一个特殊事件,当事件发生在该元素上时,该事件被告知“处理”该事件。例如:

img2.onclick = function(){
    alert('You clicked image ' + this.id);
};
还是传一个福
var img1 = document.getElementById('image1');
img2.onclick = function(){
    alert('You clicked image ' + this.id);
};
function alertID(){
    alert('You clicked image ' + this.id);
};

img2.onclick = alertID;
<img id="image1" onclick="whyme(this)"/>

function whyme(el){
    alert('You clicked image ' + el.id);
};
<img id="image1" onclick="whyme('image1')"/>

function whyme(id){
    alert('You clicked image ' + document.getElementById('id').id;
};
window.onload = function(){};
[Function swapImages() is called and executed when mouse is clicked]
    Get the imageLanding element reference

    With the imageLanding element's reference
        Set a variable to be equal to the img tag's src attribute, img.src

    Using the clicked element's reference (hopefully this)...
        Set the imageLanding's img.sr equal to the clicked element's src attribute

    Set the clicked element's this.src = the saved value you put in the variable 

    return to the awaiting events state
[Function ends]
$('#table1 tr td img').click(function()
{
  $(this).clone().appendTo($('#table2 tr td'))
  $(this).remove();
})