如何检查元素是否有类?已经使用(hasClass方法)?

时间:2014-06-11 14:06:17

标签: javascript jquery

我有这个HTML或标记。

<fieldset class="ui-dform-fieldset">
    <input type="text" id="totalRetryCount" name="totalRetryCount" tabindex="1" onblur="validateElement('Configuration', 'testSuiteConfigurationform','totalRetryCount')" class="ui-dform-text">
    <legend class="ui-dform-legend">Total Retry Count</legend>
    <label for="totalRetryCount" class="error">Please enter a valid number.</label>
</fieldset>

我想检查标签是否有错误类。我确实喜欢那个

当我调试我的元素值是“totalRetryCount”时。但它没有显示警告。

element ="totalRetryCount"

if($("#"+element+" "+"label").hasClass('error')){
        alert('-sdafs-')
    }

7 个答案:

答案 0 :(得分:5)

你的选择器错了。 totalRetryCount ID位于input,其中没有子级。

目标label是兄弟姐妹,因此请改用 next-siblings-selector

if ($("#" + element + " ~ label").hasClass("error")) {
    alert("found error");
}

或者这个:

if ($("#" + element + " ~ label.error").length) {
    alert("found error");
}

答案 1 :(得分:1)

input标记永远不会关闭,input也会自动关闭。由于你有一个ID,只需:

$("#totalRetryCount").siblings("label").hasClass("error");

答案 2 :(得分:1)

字符串totalRetryCountfor属性的值,而不是父元素的id

var element ="totalRetryCount"
if($("label[for='"+element+"']").hasClass('error')){
    alert('-sdafs-')
}

(or)

$("#" + element).siblings("label[for='"+element+"']").hasClass("error");

答案 3 :(得分:0)

您的ID /类标识符已关闭,您正在检查标签是否为ID为totalRetryCount的元素的子元素,但它不是该元素的子元素。

这有效

HTML:

<fieldset class="ui-dform-fieldset">
    <input type="text" id="totalRetryCount" name="totalRetryCount" tabindex="1" onblur="validateElement('Configuration', 'testSuiteConfigurationform','totalRetryCount')" class="ui-dform-text">    
   <legend class="ui-dform-legend">Total Retry Count</legend>
   <label for="totalRetryCount" class="error">Please enter a valid number.</label>
</fieldset>

jQuery的:

if($(".ui-dform-fieldset label").hasClass('error')){
        alert('-sdafs-')
    }

JSFiddle Demo

答案 4 :(得分:0)

您的选择器不正确。请参阅此处以获取解释标签选择器的问题。 jQuery selector for the label of a checkbox

看起来应该更像这样。

if ( $("label[for='" + element + "']").hasClass( 'error' ) )
{
    alert( 'Heres my alert!' );
}

答案 5 :(得分:0)

if($("#totalRetryCount").siblings('label').hasClass('error')){
    alert('-sdafs-'); }

js fiddle

答案 6 :(得分:0)

$("label[for=totalRetryCount]").hasClass('error')){
   alert('-sdafs-')
}

实际上,如果您的id中没有非字母数字字符,那么您就不需要用' '单引号括起来。