.find()
не будет работать. Вы должны получить текст элемента и split()
его, а затем изменить его, используя map()
и replace()
и сбросить text()
$(function(){
$(".grouping").each(function(){
var val=$(this).attr("v");
var counter=1;
let lines = $(this).text().split('\n');
lines = lines.map(ln => {
if(ln.includes('----')){
ln = ln.replace('----',`(${counter}${val})`)
counter++;
}
return ln;
})
lines = lines.filter(ln => ln !== '');
$(this).text(lines.join('\n'));
});
});
.grouping { white-space: pre; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span class="grouping" v="a">
----My first step
----This is another
----And another
</span>
<br/>
<span class="grouping" v="b">
----second group
----second group 2
</span>
Йоханнес дал правильное решение, и вот как я его закодировал ... надеюсь, это поможет другим.
[MyFilter("MyAction")] public class HomeController : Controller { public ActionResult Action1... public ActionResult Action2... public ActionResult MyAction... } public class CompressFilter : ActionFilterAttribute { private IList _ExcludeActions = null; public CompressFilter() { _ExcludeActions = new List(); } public CompressFilter(string excludeActions) { _ExcludeActions = new List(excludeActions.Split(',')); } public override void OnActionExecuting(ActionExecutingContext filterContext) { HttpRequestBase request = filterContext.HttpContext.Request; string currentActionName = (string)filterContext.RouteData.Values["action"]; if (_ExcludeActions.Contains(currentActionName)) return; ... }
Вы можете исключить конкретное действие, передав его в основной атрибут:
[MyAttribute(Exclude="Action3")]
EDIT
Мой пример был из головы (как вы можете видеть, следующее: VB.NET, возможно, здесь что-то пошло не так), вот как я реализовал:
<Models.MyAttribute(Exclude:="Action3")> _
Public Class MyController
Inherits System.Web.Mvc.Controller
End Class
Вы должны переопределить / расширить атрибут по умолчанию и добавить собственный конструктор, чтобы разрешить исключение. Или вы можете создать свой собственный атрибут для исключения (в вашем примере это [Remove_MyAttribute]).
Обычный шаблон для того, что вы пытаетесь сделать, - это иметь и атрибут с логическим параметром, который указывает, применяется ли атрибут или нет.
Пример:
[ComVisible] which is equivalent with [ComVisible(true)]
or
[ComVisible(false)]
в вашем случае у вас будет:
[MyAttribute] // defaults to true
and
[MyAttribute(false)] for applying the attribute on excluded members