【问题标题】:Get data-bind value in jquery在 jquery 中获取数据绑定值
【发布时间】:2013-08-03 20:42:07
【问题描述】:

我正在使用knockout js来设置一个span值。

HTML 代码

<span id="spnQStreamChat" data-bind="text: $data.OnLineUserName"></span>

这工作正常并在 UI 上显示用户名。

我正在尝试从 js 文件中获取该值。 通过使用下面的代码

alert($(this).attr('data-bind'));

这是这样的服务结果 text: $data.OnLineUserName 。我想要我分配的用户名。

在 UI 中显示 Bhagirathi,但在 js 中显示数据绑定中存在的内容

如何在 js 文件中获取名称(意思是:Bhagirathi)

请帮忙解决这个问题

提前致谢

[编辑]

$(document).on("click", ".btn-mini", function (e) {
    alert(ko.contextFor($('.btn-mini')[0]).$data.OnLineUserName);
    try {
        var connectionId = chatHub.server.getUserConnectionId($(this).attr('data-bind').username, sessionUserName);
    }
    catch (e) {
        //error
    }
});

[/编辑]

【问题讨论】:

    标签: jquery knockout.js


    【解决方案1】:

    您可以通过

    获取元素的淘汰赛上下文
    ko.contextFor($('#spnQStreamChat').get(0))
    

    这将返回一个类似的对象

    ko.bindingContext {$parents: Array[1], $root: ViewModel, ko: Object, $data: SomeObject, $parentContext: ko.bindingContext…}
    

    其中 $data 是您的 $data 对象。因此,要获得名称,您需要类似

    ko.contextFor($('.button.btn.c_btn').get(0)).$data.OnLineUserName()
    

    当你需要获取 $data 对象时,这种方式更有用。否则,您可以使用 jQuery 获取跨度的“文本”

    【讨论】:

    • $('.button.btn.c_btn').get(0) 这是什么意思?
    • @user1926138 $('.button.btn.c_btn').get(0) 同 $('.button.btn.c_btn')[0] ko.contextFor(node) 只接收一个节点,但 jQuery 选择器返回一个数组
    • 这是什么意思?
    • 选择数组的第一个元素
    • 是的,但我想选择最后一个元素我怎么知道数字
    猜你喜欢
    • 2012-06-18
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多