在JS的getAttribute方法举例

getAttribute()方法

到目前为止,我们已经介绍了常用的两种方法来检索特定的元素节点:一是使用getElementById()方法,另一种是使用getElementsByTagName()方法,在发现的元素,我们可以使用getAttribute()来查询其各种属性的值的方法。

getAttribute()方法是一个函数,它只有一个参数来查询你想要的属性的名称:

object.getattribute(属性)

然而,getAttribute()方法不能通过文档对象调用,这是不同于其他的方法,我们先前已经介绍过了。我们只能把它通过一个元素节点对象。

例如,您可以将它用getElementsByTagName()查询每个元素的标题属性的方法,如下图所示:




var text = document.getelementsbytagname(P)
对于(var i = 0;i < text.length;i++)
{
警报(文本{我}对象(标题));
}


如果将以上代码插入示例文档前端的购物列表的末端并在Web浏览器中重新加载页面,则显示屏幕上显示文本消息的更改对话框将显示在屏幕上。

只有一个元素在购物清单文件的标题属性,如果该文件有一个或多个没有标题属性的元素,相应的getAttribute(标题)调用将返回空。空是Javascript语言中的空值,其含义是你说是不存在的。如果你想证明这个人,请将以下的购物清单文件到现有的文本段落文本:

这只是测试

然后重新加载页面,这一次,您将看到两个修改对话框,第二个对话框将是空白的,或者只显示单词null——情况取决于Web浏览器如何显示null值。

我们可以修改我们的脚本,它只会弹出一个消息时,标题属性存在。我们将添加一个if语句来检查是否getAttribute()方法返回值不为空,这样的机会,我们也添加几个变量来提高脚本的可读性:




VaR TS = document.getelementsbytagname(礼);
对于(var i = 0;i < ts.length;i++)
{文本= TS {我}对象(标题);
如果(文本)!= null)
{
警报(文本)
}
}


现在,如果重新加载页面,您将只看到一个对话框,显示一个温和的提醒信息,如下所示。

我们甚至可以把这个代码缩短一点。当我们检查一个数据是否是一个空值时,我们实际上检查它是否存在。这个检查可以简化为直接使用检查数据作为if语句的条件。如果(某事)完全等价于if(某事)!NULL,但前者显然是简单的。在这一点上,如果某个事物存在,if语句的条件是真的;如果某个东西不存在,if语句的条件将为false。

在这种情况下,只要我们更换如果(title_text!= null)如果(title_text),我们可以得到更简洁的代码。此外,为了进一步提高代码的可读性,我们也可以借此机会改变语句,如果写在同一行的语句,这可以让他们在我们的日常生活更贴近的英语句子。




VaR TS = document.getelementsbytagname(礼);
对于(var i = 0;i < ts.length;i++)
{文本= TS {我}对象(标题);
如果(文本)警报(文本)
}


3.4.2 setAttribute()方法

我们向你们介绍的方法只用于检索信息。setAttribute()方法不同于他们中的一个重要方式:它可以让我们改变的属性节点的值。

类似的getAttribute()方法setAttribute()方法是一个函数,只能由元素节点对象调用setAttribute()方法,但需要我们通过两参数,它。

obiect.setattribute(属性,值)

在下面的示例中,第一个句子从购买元素检索id属性值。第二句将将该元素的标题属性值设置为一个商品列表:




VaR购物= document.getelementbyid(购买)
shopping.setattribute(标题


我们可以使用getAttribute()证明该元素的title属性值改变的方法:




VaR购物= document.getelementbyid(购买);
警报(shopping.getattribute(标题));
shopping.setattribute(标题
警报(shopping.getattribute(标题));


上面的语句将弹出在屏幕上显示两个警告对话框:首先改变对话框的setAttribute()方法被调用之前,这将是一个空白或者显示空字;在标题属性的值的第二设置,它会显示一个列表的商品信息。

在这种情况下,我们设置一个现有节点的标题属性,但这种产权原本并不存在。这意味着将()调用我们送的是实际上做了两个操作:首先,创建属性,然后将其值设置。如果我们使用setAttribute()对元素节点存在的属性,该属性的当前值将被覆盖。

在购物清单的示例文件,该元素有标题属性,这是一个温和的提醒的价值。我们可以使用setAttribute()来改变它的电流值的方法:





VaR TS = document.getelementsbytagname(礼);
对于(var i = 0;i < ts.length;i++)
{
var text = TS {我}对象(标题);
警报(TS {我}对象(标题))
如果(文本)
{
TS {我}。setAttribute(标题),我会成功的!)
警报(TS {我}对象(标题))
}
}


上面的代码将首先从文档中检索带有title属性的所有元素,然后将它们的title属性值更改为全新的标题文本。

这是一个非常有趣的细节:通过setAttribute()方法对文档的更改,将在显示和/或行为的变化在浏览器窗口中的文件,但我们通过浏览器查看源代码(查看源代码)看选项查看文件的源代码。还是原来的财产价值--即setAttribute()方法来修改文档本身是不体现在源代码。这种现象是DOM的工作方式完全不同:静态内容,重新加载该文档方式在动态刷新,刷新动态静态内容不影响文件。这是真正的力量和吸引力的DOM:刷新页面内容不要求最终用户执行的操作在浏览器页面刷新。