javascript - 无法获取属性值?

标签 javascript knockout.js svg

我正在使用 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);

参见:http://jsfiddle.net/e83Zb/5/

关于javascript - 无法获取属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20049321/

相关文章:

javascript - 为 NodeJS 转换 api json 响应

javascript - 如何在来自 SlidesJS.com 的 SlideJS 中自动切换幻灯片?

javascript - 使用 afterRender 功能实现 knockout 自定义绑定(bind)

javascript - 使用 jquery 进行 knockout 自动完成不允许选择自定义值

css - 在我的网站中使用泰卢固语 ttf

javascript - 使用样式化组件样式化 React 组件 (SVG)

javascript - jQuery PreventDefault 停止自动完成工作

javascript - 检查 JSON 对象中是否不存在值

knockout.js - ko 计算未显示在 View 中

HTML/CSS 跨浏览器与 SVG 不一致