Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.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 是否可以使用`setAttribute'设置超链接的文本或innerText`_Javascript - Fatal编程技术网

Javascript 是否可以使用`setAttribute'设置超链接的文本或innerText`

Javascript 是否可以使用`setAttribute'设置超链接的文本或innerText`,javascript,Javascript,我正在尝试将我的描述性JSON对象动态转换为HTML。这不是一项容易的任务,但因为它只用于一个小项目和一个小团队,所以它适合我们的需要 这意味着,JSON对象可能看起来像 'element': { 'href': '#03', 'text': 'link', 'myUniqueTag' : 'a' } 这意味着我可以使用我的UniqueTag并理解我在处理a类交易。这个很好用 我的问题是设置文本的值,即 &

我正在尝试将我的描述性JSON对象动态转换为HTML。这不是一项容易的任务,但因为它只用于一个小项目和一个小团队,所以它适合我们的需要

这意味着,JSON对象可能看起来像

'element': {
            'href': '#03',
            'text': 'link',
            'myUniqueTag' : 'a'
        }
这意味着我可以使用我的UniqueTag并理解我在处理a类交易。这个很好用

我的问题是设置文本的值,即

<a href="blah">How do I set this bit</a>
对于我的情况,我必须使用setAttributes。我的问题是,我是否遗漏了什么,或者无法通过setAttribute设置文本


请注意,我只使用香草JavaScript,没有JQuery或框架。

当然,您可以使用setAttribute来设置文本,但是您需要精确地切换您设置的属性。在您的示例中,文本和innerText不是html属性

例如:

JS:

在DOM中看起来像这样:


当然,您可以使用setAttribute来设置文本,但是您需要精确设置属性。在您的示例中,文本和innerText不是html属性

例如:

JS:

在DOM中看起来像这样:


啊。。。我懂了。但它在CBroe有效吗?为什么说这毫无意义?到目前为止,我还以为他们通过不同的语法做了相同的事情,但看起来他们在JavaScriptLand的幕后做了不同的事情,从DOM中找到要设置文本的元素。创建一个DOM文本元素。然后使用addChildNode将文本节点设置到父节点上。是的,我理解。如果确实需要,您可以使用setAttribute,但这不是正确的方法。@dfsq为什么您觉得setAttribute不是正确的方法?啊。。。我懂了。但它在CBroe有效吗?为什么说这毫无意义?到目前为止,我还以为他们通过不同的语法做了相同的事情,但看起来他们在JavaScriptLand的幕后做了不同的事情,从DOM中找到要设置文本的元素。创建一个DOM文本元素。然后使用addChildNode将文本节点设置到父节点上。是的,我理解。如果确实需要,您可以使用setAttribute,但这不是正确的方法。@dfsq为什么您觉得setAttribute不是正确的方法?那么obj.someProperty===与obj.setAttributesomeProperty不同?否,这两种方法可以做相同的思考,但使用setAtribbute,您可以添加一个HTML属性,如样式、宽度、类、值。。。innerText不是html属性你是说setAttribute只添加属性而不能附加子项吗?错,obj.someProperty=value与obj.setAttributesomeProperty,value绝对不同。这个答案并没有回答如何使用setAttribute设置innerText的问题。所以obj.someProperty===与obj.setAttributesomeProperty不同?不,两个方法可以做相同的思考,但使用setAtribbute可以添加HTML属性,如样式、宽度、类、值。。。innerText不是html属性你是说setAttribute只添加属性而不能附加子项吗?错,obj.someProperty=value与obj.setAttributesomeProperty,value绝对不同。这个答案并没有回答如何使用setAttribute设置innerText的问题。
one.text = "Hello world";                           //works
two.innerText = "Hello world";                      //works
three.setAttribute("text", "Hello world");          //fails
four.setAttribute("innerText", "Hello world");      //fails
var b = document.createElement('button'); 
b.setAttribute('content', 'test content'); 
b.setAttribute('class', 'btn'); 
b.innerHTML = 'test value';

var wrapper = document.getElementById("divWrapper");
wrapper.appendChild(b);
<div id="divWrapper">
    <button content="test content" class="btn">test value</button>
</div>