2015-08-23 3 views
-2

enter image description hereJQuery .find() не работает правильно

Я пытаюсь разрешить некоторые текст <p> (комментарий), чтобы быть редактируемыми, когда пользователь нажимает на «Edit».

function editComment(commentid,replyid){ 

    $('#comment'+commentid).find('.comment-text').attr("contenteditable='true'"); 

} 

Однако это дает мне сообщение об ошибке (не определено), и я не знаю, почему, как .comment-text является потомком #comment88? Я, вероятно, пропустил что-то очень простое

+0

Является ли 'commentid' строкой? – Zerquix18

+0

Ваш код отлично подходит для меня, за исключением того, что вы неправильно используете attr. При попытке установить значение атрибута он принимает два аргумента: 'attr (name, value)'. Я застрял в ручке для вас: http://codepen.io/anon/pen/vOoBXL –

ответ

2

Ваш HTML DOM и jQuery выглядит нормально и законно, однако функция attr вызовет проблемы. Я бы предположил, что вы применяете стиль, используя это,

$('#comment'+commentid).find('.comment-text').attr("contenteditable", true); 

Это применит атрибут к вашему элементу.

Описание: Когда вы используете функцию attr() для добавления или обновления значения атрибута, вы передаете два параметра. Один как ключ и второй как значение для этого атрибута (ключа). Если вы передадите только один, он вернет значение этого атрибута. Это проблема, которая возникает в вашем случае, функция поиска работает, но в конечной функции вместо применения этого атрибута она возвращает значение (false IMO).

+0

@frosty, undefined, тогда проблема будет с переменной 'commentid'. Он может иметь значение, из-за которого элемент не может быть найден. –

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