我在HTML页面上有几个具有相同类的元素 - 但它们是不同的元素类型.我想在循环它们时找出元素的标记名称 - 但.attr不带"tag"或"tagname".
这就是我的意思.在页面上考虑以下元素:
<h1 class="rnd">First</h1>
<h2 id="foo" class="rnd">Second</h2>
<h3 class="rnd">Third</h3>
<h4 id="bar" class="rnd">Fourth</h4>
Run Code Online (Sandbox Code Playgroud)
现在我想运行这样的东西,以确保我的元素都有一个id,如果还没有定义:
$(function() {
$(".rnd").each(function(i) {
var id = $(this).attr("id");
if (id === undefined || id.length === 0) {
// this is the line that's giving me problems.
// .attr("tag") returns undefined
$(this).attr("id", "rnd" + $(this).attr("tag") + "_" + i.toString());
}
});
});
Run Code Online (Sandbox Code Playgroud)
我想要的结果是H2和H4元素的id值为
rndh2_1
rndh4_3
Run Code Online (Sandbox Code Playgroud)
分别.
关于如何发现"this"所代表的元素的标签名称的任何想法?
我最近采用了一个已经升级到.NET 4的现有ASP.NET 3.5 Web表单应用程序(并且运行良好),并将其配置为运行ASP.NET MVC3,遵循Scott Hanselman的博客文章:集成ASP.NET MVC 3进入现有升级的ASP.NET 4 Web Forms应用程序.它运作良好,我已成功开始基于Razor引入视图,现有aspx页面继续工作.
然而,停止工作的一件事是自定义HttpHandler(我们的负载均衡器命中特定地址以确保应用程序可用 - 处理程序用于该地址).web.config总是在如下的system.web部分中声明处理程序:
<httpHandlers>
<add verb="*" path="system/heartbeat.aspx"
type="My.Monitor.HttpHandlers.LoadBalancerHandler, My.Monitor"/>
</httpHandlers>
Run Code Online (Sandbox Code Playgroud)
现在我们正在测试post-MVC3,我得到的异常是:
未找到路径'/system/heartbeat.aspx'的控制器或未实现IController.
我RegisterRoutes在我的方法中定义了一个方法,Global.asax并从中调用该方法Application_Start.在RegisterRoutes我已经得到了IgnoreRoute从Hanselman的博客的声明:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
Run Code Online (Sandbox Code Playgroud)
我认为这是为了防止路由系统采用扩展名为.aspx的任何东西.
我可以在调试时在VS2010中重现该问题,并且部署环境正在运行IIS 6.
我该怎么做才能阻止路由系统尝试处理该地址,以便自定义处理程序可以做到这一点?任何帮助表示赞赏.
asp.net asp.net-mvc httphandler asp.net-mvc-routing asp.net-mvc-3
我试图将文件中的PublishTestResults@2任务的failTaskOnFailedTests参数分配azure-pipelines.yml为表达式的结果。第一次运行测试时,如果有任何失败的测试,我想让作业失败。在随后尝试重试失败的作业时,我不想让作业失败。
我已经像这样设置了任务(倒数第二行是我设置参数的地方failTaskOnFailedTests):
- task: PublishTestResults@2
displayName: 'Publish Test Results'
inputs:
testResultsFormat: 'JUnit'
testResultsFiles: '*.xml'
searchFolder: '$(testsOutputPath)'
mergeTestResults: true
failTaskOnFailedTests: eq($(System.JobAttempt), 1)
testRunTitle: 'Test Results $(System.JobAttempt)'
Run Code Online (Sandbox Code Playgroud)
当我在启用系统诊断的情况下运行管道时,我可以在日志中看到以下内容:
##[debug]testRunTitle=Test Results 1
##[debug]publishRunAttachments=true
##[debug]failTaskOnFailedTests=eq(1, 1)
##[debug]searchFolder=/home/vsts/work/1/s/TestProject/cypress/reports/junit
##[debug]testRunner: JUnit
##[debug]testResultsFiles: *.xml
##[debug]mergeResults: true
Run Code Online (Sandbox Code Playgroud)
第三行显示failTaskOnFailedTests被设置为表达式语句,而不是表达式的计算值。我对自己做错的事情感到不知所措。该表达式似乎与表达式文档中的其他表达式一致。
我缺少什么?