如何将此元素作为锚标记传递给 javascript 函数

How pass this element as anchor tag to javascript function

这就是我们将 Url() 模型输入绑定到 knockout UI 的方式。

[anchor-tag] data-bind="attr: { href: Url()"

现在我想附加到 url 一些来自父元素的东西,所以我想将 "this" 元素传递给 js 文件。

[anchor-tag]  data-bind="attr: { href: myFunction1(Url(), this)"

myFunction1 = function (url, obj) {
    return url + "#" + $(obj).parents('li').attr('rankAbs');
}

当我在 myFunction1 中执行 $(obj) 时,我得到了 Window 对象。

而且我无法访问更多的父对象。

根据 documentation,“$element”是绑定应用到的当前 DOM 元素:

This is the element DOM object (for virtual elements, it will be the comment DOM object) of the current binding. This can be useful if a binding needs to access an attribute of the current element. Example:

<div id="item1" data-bind="text: $element.id"></div>

你的情况:

[anchor-tag]  data-bind="attr: { href: myFunction1(Url(), $element)"

如果在您的函数中您使用父 DOM 元素并获取一些属性,最好更改您的视图模型以提供所需的信息。

如果父模型可以提供所需信息,您还可以使用“$parent”或“$parents”Knockout 上下文变量。