2011-12-19 3 views
0
var currentClassName = $(this).parent('td').next('td').find('input:text').attr('class'); 

       if (currentClassName == undefined) { 
        currentClassName = $(this).parent('td').find('input:text').attr('class'); 
       } 

Это работает, но я полагаю, он может быть написан в одной строке? Я не очень удовлетворен этим решением. Благодаряпроверка наличия элемента с классом

+0

[Это сообщение] (http://stackoverflow.com/questions/5941247/how-can-i-select-an-element-only-if-it-doesnt-have-a-class-assign) должен отвечать на ваш вопрос. –

+0

Может быть, лучший вариант, но очень неясно, чего вы на самом деле пытаетесь достичь здесь. Вы пытаетесь получить класс 'input' в соседнем' td, но если нет, то получите класс ввода в том же 'td'? Это действительно помогло бы, если бы вы описали большую картину. Как выглядит HTML-код? Что такое «это»? – RoToRa

ответ

0
var currentClassName = $(this).parent('td').next('td').find('input:text').attr('class'); 
currentClassName = (currentClassName == undefined ? $(this).parent('td').find('input:text').attr('class') : currentClassName); 
+0

Я надеялся на способ избавиться от неопределенной проверки, возможно, это невозможно .. – Johan

+0

Ну, сама суть того, что вы здесь делаете, - проверить, есть ли у элемента какой-либо класс, и если он не " t, возьмем класс другого элемента. Неопределенная проверка довольно важна для этого. –

1
 
if ($(#elm).is('.classname')) { 
//#elm has the class 
} else { 
//#elm doesn't have the class 
} 
+0

Я думаю, что OP не знает имя класса заранее. Но вы можете использовать .hasClass ('classname') вместо .is –

+0

К сожалению, запутался в вопросе –

+0

Не должен ли использовать метод hasClass в вашем примере? :) – Johan

0

На самом деле, я думаю, вы должны быть в состоянии проверить наличие класса с помощью атрибута JQuery селектор:

if ($(this).parent('td').next('td').find('input:text[class]').length != 0) { 

    // do something 

} 
+0

Также работает мой метод проверки существования класса. то, что ищет, является решением одной одной строки (без стенограммы if). но я думаю, это может быть невозможно – Johan

Смежные вопросы