农业网格中的单元格渲染问题
Cell Rendering issue in ag-grid
var gridOptions = {
columnDefs: [
{headerName: 'Connection', field: 'Applicationaccess',minWidth:350,filter:'text',filterParams:{
filterOptions:['equals','contains']
},cellClass: 'all_grid_cell conn_cell',cellRenderer:function(params){
var p=params.value;
var $wrapper_div = $("<div>",{"class":"w3-dropdown-hover"});
var $newlink=$("<a>",{"href":"javascript:void(0)","class":"link w3-white","text":p});
$newlink.appendTo($wrapper_div);
var $ediv = $("<div>",{"class":"w3-dropdown-content w3-bar-block w3-border"});
var x=['meet','meeeeet','meeeeeeeet'];
for(i=0;i<x.length;i++){
var $btn=abc(x[i]);
$btn.appendTo($ediv);
}
$ediv.appendTo($wrapper_div);
return $wrapper_div;
}}
function abc(x){
var $btn=$("<button>",{"class":" w3-bar-item w3-button","text":x});
return $btn;
}
Connection 中的输出类似于 [Object][object]:
我的目标是在连接列的每个单元格中显示可悬停的下拉菜单。
按照文档,我创建了我想要的 div 元素并通过 cellRenderer 函数返回它
请帮助
我不是 JQuery 专家...但看起来您 运行 遇到的一个问题是您要返回一个 JQuery 对象(在本例中似乎是一个数组)而不是 HTML 元素。将 return $wrapper_div;
更改为 return $wrapper_div[0];
,它应该可以工作。
这是一个显示返回内容差异的示例:
console.log("HTML Element:\n", $("<div>",{"class":"w3-dropdown-hover"})[0])
console.log("JQuery Object:\n", $("<div>",{"class":"w3-dropdown-hover"}))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
是的 return $wrapper_div[0],因为它是一个 jQuery DOM 对象,你 returning 而不是正常的 DOM 对象。
jQuery Dom 对象和 HTML DOM 对象不同,请阅读 jQuery 文档。您将理解为什么可以将其用作数组以及为什么 return 第一个元素。
其次,为什么要在变量名中使用 $ ?这不是PHP你不需要用$。
在 jQuery 中 $ 是一个特殊的关键字,它与一个特殊的 $ 函数相关联,该函数处理选择器和访问 jQuery DOM 对象。 $ 是 jQuery () 重载函数的别名。
var gridOptions = {
columnDefs: [
{headerName: 'Connection', field: 'Applicationaccess',minWidth:350,filter:'text',filterParams:{
filterOptions:['equals','contains']
},cellClass: 'all_grid_cell conn_cell',cellRenderer:function(params){
var p=params.value;
var $wrapper_div = $("<div>",{"class":"w3-dropdown-hover"});
var $newlink=$("<a>",{"href":"javascript:void(0)","class":"link w3-white","text":p});
$newlink.appendTo($wrapper_div);
var $ediv = $("<div>",{"class":"w3-dropdown-content w3-bar-block w3-border"});
var x=['meet','meeeeet','meeeeeeeet'];
for(i=0;i<x.length;i++){
var $btn=abc(x[i]);
$btn.appendTo($ediv);
}
$ediv.appendTo($wrapper_div);
return $wrapper_div;
}}
function abc(x){
var $btn=$("<button>",{"class":" w3-bar-item w3-button","text":x});
return $btn;
}
Connection 中的输出类似于 [Object][object]:
我的目标是在连接列的每个单元格中显示可悬停的下拉菜单。 按照文档,我创建了我想要的 div 元素并通过 cellRenderer 函数返回它 请帮助
我不是 JQuery 专家...但看起来您 运行 遇到的一个问题是您要返回一个 JQuery 对象(在本例中似乎是一个数组)而不是 HTML 元素。将 return $wrapper_div;
更改为 return $wrapper_div[0];
,它应该可以工作。
这是一个显示返回内容差异的示例:
console.log("HTML Element:\n", $("<div>",{"class":"w3-dropdown-hover"})[0])
console.log("JQuery Object:\n", $("<div>",{"class":"w3-dropdown-hover"}))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
是的 return $wrapper_div[0],因为它是一个 jQuery DOM 对象,你 returning 而不是正常的 DOM 对象。 jQuery Dom 对象和 HTML DOM 对象不同,请阅读 jQuery 文档。您将理解为什么可以将其用作数组以及为什么 return 第一个元素。 其次,为什么要在变量名中使用 $ ?这不是PHP你不需要用$。 在 jQuery 中 $ 是一个特殊的关键字,它与一个特殊的 $ 函数相关联,该函数处理选择器和访问 jQuery DOM 对象。 $ 是 jQuery () 重载函数的别名。