Jquery Ajax-如何检查CSS类返回的HTML?
我正在使用Ajax发布到.NETMVC控制器。它返回要显示在页面某个部分上的HTML。我需要做的是以某种方式确定HTML是否包含类名,以便我可以使用它来更新网页的另一部分 这是我的Ajax调用Jquery Ajax-如何检查CSS类返回的HTML?,jquery,ajax,asp.net-mvc,asp.net-ajax,Jquery,Ajax,Asp.net Mvc,Asp.net Ajax,我正在使用Ajax发布到.NETMVC控制器。它返回要显示在页面某个部分上的HTML。我需要做的是以某种方式确定HTML是否包含类名,以便我可以使用它来更新网页的另一部分 这是我的Ajax调用 $.ajax({ type: "POST", url: url, data: data, success: function (response) { $("#validation-remarks").html(response); $("
$.ajax({
type: "POST",
url: url,
data: data,
success: function (response) {
$("#validation-remarks").html(response);
$("#updateMessage").html(response);
console.log(response);
var html = $.parseHTML(response);
//somehow check the HTML for a value
$("#divLoading").hide();
}
它返回以下引导HTML之一
@if (Model.IsSuccessful)
{
<div class="alert alert-dismissible alert-success">
<button type="button" class="close" data-dismiss="alert">×</button>
@Model.UpdateMessage
</div>
}
else
{
<div class="alert alert-dismissible alert-danger">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>@Model.UpdateMessage</strong>
<div class="pt-2">
@Html.Raw(Model.ValidationMessage)
</div>
</div>
}
我认为您可以轻松地使用Javascript搜索该CSS类。比如
response.indexOf('NameOfClass')>-1
。我希望它有意义。我认为您可以轻松地使用Javascript搜索该CSS类。比如response.indexOf('NameOfClass')>-1
。我希望它有意义。如果您正在使用jQuery,您可能会发现它很有用
.hasClass(类名)确定是否将任何匹配的元素分配给给定的类 下面,我将响应转换为一个类,然后测试该对象的类名
var响应=[
`
&时代;
@Model.UpdateMessage
`,
`
&时代;
@Model.UpdateMessage
@Html.Raw(Model.ValidationMessage)
`,
`
`
];
变量$output=$(“#output”);
$。每个(响应,函数(k,响应){
var$html=$(响应);
if($html.hasClass('alert-success')){
$output.append(''+k+')包含成功(');
}else if($html.hasClass('alert-danger')){
$output.append(''+k+')包含危险(');
}否则{
$output.append(''+k+')既不包含');
}
});代码>
如果您正在使用jQuery,您可能会发现它很有用
.hasClass(类名)
确定是否将任何匹配的元素分配给给定的类
下面,我将响应转换为一个类,然后测试该对象的类名
var响应=[
`
&时代;
@Model.UpdateMessage
`,
`
&时代;
@Model.UpdateMessage
@Html.Raw(Model.ValidationMessage)
`,
`
`
];
变量$output=$(“#output”);
$。每个(响应,函数(k,响应){
var$html=$(响应);
if($html.hasClass('alert-success')){
$output.append(''+k+')包含成功(');
}else if($html.hasClass('alert-danger')){
$output.append(''+k+')包含危险(');
}否则{
$output.append(''+k+')既不包含');
}
});代码>
假设警报
div是响应的根元素,下面的issucess
和isDanger
将返回一个布尔值
var html = $.parseHTML(response);
//test for '.alert-success'
var isSuccess = $( html ).is('.alert-success');
//test for '.alert-danger'
var isDanger = html.is('.alert-danger');
.is(选择器)
对照选择器、元素或jQuery对象检查当前匹配的元素集,如果至少有一个元素,则返回true
这些元素的个数与给定的参数匹配
假设alert
div是响应的根元素,下面的issucess
和isDanger
将返回一个布尔值
var html = $.parseHTML(response);
//test for '.alert-success'
var isSuccess = $( html ).is('.alert-success');
//test for '.alert-danger'
var isDanger = html.is('.alert-danger');
.is(选择器)
对照选择器、元素或jQuery对象检查当前匹配的元素集,如果至少有一个元素,则返回true
这些元素的个数与给定的参数匹配
谢谢,我将尝试一下。hasClass可以工作并且目前正在使用它,但是,我看到它返回JSON,所以我尝试解析JSON,然后查看IsValid属性。我犯了一个错误。我将更新后的代码放在原始问题中。你明白为什么JSON代码会抛出错误了吗?从jQuery文档来看,它似乎应该可以工作。您的脚本似乎没有以JSON格式返回数据。谢谢,我将尝试一下。hasClass可以工作并且当前正在使用它,但是,我看到它返回JSON,所以我尝试解析JSON,然后查看IsValid属性。我犯了一个错误。我将更新后的代码放在原始问题中。你明白为什么JSON代码会抛出错误了吗?从jQuery文档看,它似乎应该可以工作。您的脚本似乎没有以JSON格式返回数据。使用jQuery 3.0.0时,我收到一个错误,说“html.is不是函数”。如果将$.parseHTML
替换为$
,会怎么样?我需要更多地使用3.0.0
。parseHTML
返回一组DOM节点。要使用is()
,您需要一个jQuery对象<代码>$($.parseHTML(响应))代码>或仅$(响应)代码>应该可以工作。使用jQuery 3.0.0时,我收到一个错误,说“html.is不是一个函数”。如果您将$.parseHTML
替换为$
,该怎么办?我需要更多地使用3.0.0
。parseHTML
返回一组DOM节点。要使用is()
,您需要一个jQuery对象<代码>$($.parseHTML(响应))代码>或仅$(响应)代码>应该可以。这也可以,但我喜欢.hasClass选项。看起来有点直观。这也可以,但我喜欢.hasClass选项。看起来更直观一点。