Javascript JQuery未设置';文本内容';在版本1.7.1中

Javascript JQuery未设置';文本内容';在版本1.7.1中,javascript,jquery,Javascript,Jquery,我有下面的代码,为HTML中的元素设置目标href&textcontent,这在JQuery 1.4.1和1.5.1中运行得非常好,但在更新到1.7.1后,它不会更改可见元素的“textcontent”属性,href已被更新 $("#uriEmma").attr('textcontent', emmaUri); $("#uriEmma").attr('href', emmaUri); $("#uriEmma").attr('target', '_blank'); 你知道为什么会这样吗?你

我有下面的代码,为HTML中的元素设置目标href&textcontent,这在JQuery 1.4.1和1.5.1中运行得非常好,但在更新到1.7.1后,它不会更改可见元素的“textcontent”属性,href已被更新

 $("#uriEmma").attr('textcontent', emmaUri);
 $("#uriEmma").attr('href', emmaUri);
 $("#uriEmma").attr('target', '_blank');
你知道为什么会这样吗?

你应该使用合适的大小写:
textContent

从文件:

属性和属性之间的差异在应用程序中可能很重要 具体情况。在jQuery1.6之前,有时使用.attr()方法 检索某些属性时考虑了属性值, 这可能会导致不一致的行为。从jQuery1.6开始,.prop() 方法提供了一种显式检索属性值的方法,而 .attr()检索属性

您应该使用适当的大小写:
textContent

从文件:

属性和属性之间的差异在应用程序中可能很重要 具体情况。在jQuery1.6之前,有时使用.attr()方法 检索某些属性时考虑了属性值, 这可能会导致不一致的行为。从jQuery1.6开始,.prop() 方法提供了一种显式检索属性值的方法,而 .attr()检索属性

.prop(propertyName)

属性和属性之间的差异在特定情况下可能很重要在jQuery 1.6之前,在检索某些属性时,
.attr()
方法有时会考虑属性值,这可能会导致不一致的行为。从jQuery1.6开始,.prop()方法提供了一种显式检索属性值的方法,而
.attr()
则检索属性

例如,
selectedIndex
tagName
nodeName
nodeType
ownerDocument
defaultChecked
defaultSelected
都应该被检索并使用
.prop()
方法进行设置在jQuery 1.6之前,这些属性可以通过
.attr()
方法检索,但这不在attr的范围内。这些属性没有相应的属性,只是属性。

.prop(propertyName)

属性和属性之间的差异在特定情况下可能很重要在jQuery 1.6之前,在检索某些属性时,
.attr()
方法有时会考虑属性值,这可能会导致不一致的行为。从jQuery1.6开始,.prop()方法提供了一种显式检索属性值的方法,而
.attr()
则检索属性


例如,
selectedIndex
tagName
nodeName
nodeType
ownerDocument
defaultChecked
defaultSelected
都应该被检索并使用
.prop()
方法进行设置在jQuery 1.6之前,这些属性可以通过
.attr()
方法检索,但这不在attr的范围内。这些属性没有相应的属性,只是属性。

textContent
是DOM属性,而不是HTML属性

在较旧版本的jQuery中,如果字符串大小写与元素上的匹配属性相同,则
attr()
函数几乎总是映射到属性。这在jQuery1.6中发生了变化(这是正确的),因此现在
attr()
几乎完全映射到
setAttribute
,并且引入了新函数来设置包装元素的属性

除了使用
prop()
,您还需要确保套管正确。JavaScript和DOM属性使用驼峰式大小写,并以小写字母开头。因此,您需要使用
textContent
,而不是
textContent

以下是在jQuery 1.6+中设置属性的几种方法:

// Set the first element's `textContent`
$("#someEl")[0].textContent = "test";

// Set every element's textContent
$("#someEl").prop('textContent', "test");

// Set every element's text, mapping to innerText in older browsers:
$("#someEl").text("test");
//设置第一个元素的`textContent`
$(“#someEl”)[0].textContent=“test”;
//设置每个元素的文本内容
$(“someEl”).prop('textContent',“test”);
//设置每个元素的,在旧浏览器中映射到innerText:
$(“#someEl”).text(“测试”)

注意:如果您想支持IE 8及更低版本,您需要使用或进行适当的测试,以使用
innerText
而不是
textContent

textContent
是DOM属性,而不是HTML属性

在较旧版本的jQuery中,如果字符串大小写与元素上的匹配属性相同,则
attr()
函数几乎总是映射到属性。这在jQuery1.6中发生了变化(这是正确的),因此现在
attr()
几乎完全映射到
setAttribute
,并且引入了新函数来设置包装元素的属性

除了使用
prop()
,您还需要确保套管正确。JavaScript和DOM属性使用驼峰式大小写,并以小写字母开头。因此,您需要使用
textContent
,而不是
textContent

以下是在jQuery 1.6+中设置属性的几种方法:

// Set the first element's `textContent`
$("#someEl")[0].textContent = "test";

// Set every element's textContent
$("#someEl").prop('textContent', "test");

// Set every element's text, mapping to innerText in older browsers:
$("#someEl").text("test");
//设置第一个元素的`textContent`
$(“#someEl”)[0].textContent=“test”;
//设置每个元素的文本内容
$(“someEl”).prop('textContent',“test”);
//设置每个元素的,在旧浏览器中映射到innerText:
$(“#someEl”).text(“测试”)
注意:如果您想支持IE 8及更低版本,您需要使用或进行适当的测试,以使用
innerText
而不是
textContent