可以在 LI 中插入 HTML.Actionlink 吗?
Is possible to insert HTML.Actionlink inside LI?
我正在尝试使用以下代码在 li 元素中插入一个 @HTML.ActionLink
元素:
var ul = document.getElementById('container');
var enlace = '@Html.ActionLink("Details", "Details", "Elements", new { id = "5" }, null)';
var li = document.createElement('li');
li.appendChild(document.createTextNode('My title'));
li.appendChild(document.createElement('br'));
///////////////////////////////////////////////
li.appendChild(document.createElement(enlace));
///////////////////////////////////////////////
ul.appendChild(li);
可能吗?
您将整个 HTML 元素传递给 document.createElement()
,它只需要一个标签名称。本质上,您正在这样做:
document.createElement('<a href="someLink">some text</a>')
而函数是这样工作的:
document.createElement('a');
您可以通过将元素的创建与元素的 HTML 的设置分离到自定义服务器生成的 HTML 来解决此问题。仅替换注释包围的代码,它可能如下所示:
///////////////////////////////////////////////
var enlaceElement = document.createElement('a');
enlaceElement.innerHTML = enlace;
li.appendChild(enlaceElement);
///////////////////////////////////////////////
我有一个完整的演示 here。
我正在尝试使用以下代码在 li 元素中插入一个 @HTML.ActionLink
元素:
var ul = document.getElementById('container');
var enlace = '@Html.ActionLink("Details", "Details", "Elements", new { id = "5" }, null)';
var li = document.createElement('li');
li.appendChild(document.createTextNode('My title'));
li.appendChild(document.createElement('br'));
///////////////////////////////////////////////
li.appendChild(document.createElement(enlace));
///////////////////////////////////////////////
ul.appendChild(li);
可能吗?
您将整个 HTML 元素传递给 document.createElement()
,它只需要一个标签名称。本质上,您正在这样做:
document.createElement('<a href="someLink">some text</a>')
而函数是这样工作的:
document.createElement('a');
您可以通过将元素的创建与元素的 HTML 的设置分离到自定义服务器生成的 HTML 来解决此问题。仅替换注释包围的代码,它可能如下所示:
///////////////////////////////////////////////
var enlaceElement = document.createElement('a');
enlaceElement.innerHTML = enlace;
li.appendChild(enlaceElement);
///////////////////////////////////////////////
我有一个完整的演示 here。