我正在使用 svg 并在我的 svg 应用程序中使用 knockout
并且它工作得很好。但是我正在使用 data-bind
更改 svg text
元素的 textContent,在我对属性使用 data-bind 之后,我无法获得值该属性使用 text.attributes['text'].value
。
编辑:
我的文字是元素是这样的。
<text data-bind=\'{style: fill:viewModel.marks()>50?"green":"red"},text: "UserName :" + viewModel.userName()\'></text>
如何在应用绑定(bind)之前获取文本属性值?
注意:我找到了这个 Get data-bind value in jquery链接,但此 ko.contextFor
方法对我不起作用。
任何建议都应该受到赞赏。
问候,
卡蒂克。
最佳答案
您不能使用属性
来访问文本值。您可以使用 textContents
属性,例如:
HTML
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" />
<text x="0" y="15" fill="blue" data-bind='text: userName()'></text>
</svg>
<br>
<button data-bind='click: test'>Test</button>
Javascript
var viewModel = {
userName : ko.observable("Jones"),
test : function() {
var t = document.getElementsByTagName("text")[0],
s = t.textContent;
alert(s);
}
};
ko.applyBindings(viewModel);
关于javascript - 无法获取属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20049321/