小编Big*_*gVT的帖子

jQuery可以提供标签名称吗?

我在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"所代表的元素的标签名称的任何想法?

javascript jquery

115
推荐指数
4
解决办法
13万
查看次数

HttpHandler无法在ASP.NET MVC3 Web应用程序中工作

我最近采用了一个已经升级到.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

4
推荐指数
1
解决办法
5919
查看次数

Azure DevOps yaml管道表达式未计算

我试图将文件中的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被设置为表达式语句,而不是表达式的计算值。我对自己做错的事情感到不知所措。该表达式似乎与表达式文档中的其他表达式一致。

我缺少什么?

azure-devops azure-devops-pipelines

3
推荐指数
1
解决办法
3213
查看次数