如何在 Web 组件中设置标签的内部文本
How to set inner text of tag in web component
我正在使用x标签。这是我正在处理的代码。我需要用自定义元素属性值的值设置这些div 框的内容。可以这样做吗?我尝试设置它,但出现错误"未定义不是函数"。
var template = xtag.createFragment(function(){/*
<div>
<div id="box1"></div>
<div id="box2"></div>
<div id="box3"></div>
</div>
*/});
xtag.register('x-navbar', {
lifecycle: {
created: function() {
this.appendChild(template.cloneNode(true));
this.getElementById("#box1").innerHTML = this.productName;
},
accessors: {
productName: {
attribute: {},
get: function(){
return this.getAttribute('productName') || "";
},
set: function(value){
this.xtag.data.header.setAttribute('productName',value);
}
}
}
});
<x-navbar productName="Box 1">hii</x-navbar>
您可以像这样编写支持访问器的属性。您无需手动尝试设置属性。因为它会从 get 函数更新自身以返回值。
accessors: {
productName: {
attribute: {},
get: function () { return this._productName; },
set: function (value) {
this._productName = value;
// MANUPLATE YOUR HTML IN HERE
this.getElementById("#box1").innerHTML = this.productName;
}
},
}
您可以进一步简化此操作,因为您不会更改 setter 中的 productName:
xtag.register('x-navbar', {
content: function() {/*
<div>
<div id="box1"></div>
<div id="box2"></div>
<div id="box3"></div>
</div>
*/},
accessors: {
productName: {
attribute: {},
set: function (name) {
this.querySelector('#box1').textContent = name;
}
}
}
});
你会像这样使用:
<x-navbar product-name="Testing 123">hii</x-navbar>
请注意,属性名称必须是 productName
、 product-name
的破折号化版本。 这将呈现为:
hii
Testing 123
模板<div>
结构添加到元素的内容之后,hii
.
相关文章:
- JavaScript goto 标签如何使用内部循环
- Knockout.JS标签在foreach内部不起作用
- '这'内部'body'标签
- 如何在更新面板内部调用/触发javascript函数<触发器>标签
- 调用AngularJS内部<脚本>标签
- 如何找到内部标签的位置并将其聚焦
- 使用Javascript在模态内部的标签上显示错误消息不起作用
- .remove() 只删除内部 HTML,而不是像我想要的那样删除整个标签
- 如何从内部HTML字符串中删除隐藏的标签
- 如何使用 JavaScript 访问表单选择标签的 value 属性的内容或其内部文本
- 修剪标签上的空白区域,而不删除<输入>内部
- Javascript 从 iframe 内部的页面获取正文标签
- 如何从子标签内部使用 JavaScript 访问父标签
- 如何在 Web 组件中设置标签的内部文本
- 使用 jQuery 更改内部特定 Div 标签内的 TD 值
- 使用 jQuery 访问 TD 内部的 Div 标签
- 将UL内部的内容与列表项和锚标签<李><a></a></李>
- 如何在我的 标签中返回内部 HTML
- Javascript正则表达式防止标签内部匹配
- 使用Ajax更改包含链接的标签内部文本