我有一个配置文件,我可以将replaceTag
属性设置为
replacetags = "h1=p|strong,h2=p|strong
表示在html字符串中,所有h1的出现都将替换为
<p><strong>...</strong></p>
同样适用于h2
我正在做类似
的事情tagpairs = replacetags.split(",")
for( var i = 0; i < tagpairs.length; i++ ) {
var pair = tagpairs[i].split("=");
var searchtag = pair [0];
var replacetags = pair [1];
var opensearchstr = "<" + inputTag + ">" />
var closesearchstr = "</" + inputTag + ">" />
var openreplacestr = "";
var closereplacestr = "";
for( var j = 0; j < replacetags.length; j++) {
openreplacestr += "<" + replacetags[ idx ] + ">" />
closereplacestr += "</" + replacetags[ len -idx - 1 ] + ">" />
}
}
像这样的事情。绝对应该有更好的方法。
答案 0 :(得分:2)
您的逻辑有一些限制
您需要使用replaceChild
function createElements( ele, val )
{
var element = document.createElement("div");
val.split("|").reduce( function(a,c,i,arr){
var tmpChild = document.createElement(c);
a.appendChild( tmpChild );
if ( i == arr.length - 1 )
{
tmpChild.innerText = ele.innerText;
}
return tmpChild;
} , element);
ele.parentNode.replaceChild( element.firstChild, ele );
}
<强>演示强>
replaceTags( "h1=p|strong,h2=p|strong" );
function replaceTags( tags )
{
//convert to map
var map = tags.split( "," ).reduce( (a,c) => ( d = c.split("="), a[d[0]] = d[1], a ), {});
Object.keys( map ).forEach( function( tagName ){
Array.from( document.querySelectorAll( tagName ) ).forEach( function( ele ){
createElements(ele, map[ tagName ] );
})
});
}
function createElements( ele, val )
{
var element = document.createElement("div");
val.split("|").reduce( function(a,c,i,arr){
var tmpChild = document.createElement(c);
a.appendChild( tmpChild );
if ( i == arr.length - 1 )
{
tmpChild.innerText = ele.innerText;
}
return tmpChild;
} , element);
ele.parentNode.replaceChild( element.firstChild, ele );
}
<h1>H1 tag</h1>
<h2>H2 tag</h2>
注意强>
答案 1 :(得分:0)
使用 private void BindClients(String Search)
{
DBContext dbcontext = new DBContext();
SqlParameter[] Param = { new SqlParameter("@Search", Search), };
DataSet ds = dbcontext.GetDataset("Proc_getCompanies ", Param);
if (ds != null && ds.Tables.Count > 0)
{
if (ds.Tables[0].Rows.Count > 0)
{
grdClients.DataSource = ds.Tables[0];
grdClients.Columns["CompanyID"].ToString().Visible = false;
}
else
grdClients.DataSource = null;
}
else
grdClients.DataSource = null;
}
函数可以轻松替换使用JQuery。
试试这个:
replaceWith()