Найти сложный JQuery селектор

0

Я не эксперт в JQuery. Я хотел бы получить идентификатор определенного родительского селектора.

Моя страница содержит следующие

<p>
getting this    <input id="comment16" type="button" value="Comment" disabled="">
                <div class="form" style="">
                    <form id="comment-form" method="post" action="/post/index.php/comment/create?post_id=16">
                        <p class="note">Fields with <span class="required">*</span>are required.</p>
                        <div id="comment-form_es_" class="errorSummary" style="display:none">
                            <p>Please fix the following input errors:</p>
                            <ul><li>dummy</li></ul>
                        </div>
                        <div class="row">
                            <label class="required" for="comment_comment">  Comment
                                <span class="required">*</span>
                            </label>
                            <input id="comment_comment" type="text" name="comment[comment]" maxlength="140" size="60">
                            <div id="comment_comment_em_" class="errorMessage" style="display:none"></div>
                        </div>
                        <div class="row buttons">
From here                   <p> <input id="save" type="button" value="Create"> </p>    
                            <p> <input id="cancelcomment" type="button" value="Cancel"></p>
                        </div>
                    </form>
                </div>
</p>

Я попробовал это

$('body').on('click','#save',function(e) {
            var $thisClicked = $(this);
            var parameter = $thisClicked.attr("id");
            $("#comment-form").submit(function(e) {
                var postData = $(this).serializeArray();
                var parameter = $thisClicked.parent('div').parent('form').parent('div').closest('input').attr('id');
                parameter = parameter.replace('comment','');

....

Вы можете мне помочь? заранее спасибо

  • 0
    Вы пытаетесь отправить форму, когда #save ? $().submit(function(){}) - обработчик события для события отправки формы, а не инструкция для его отправки.
Теги:

2 ответа

0
Лучший ответ
$('#save').click(function() {
  var $this = $(this);
  // Gets the closest element in the ancestry matching the selector
  var $form = $this.closest(".form");
  // Gets the preceding sibling element
  var $commentInput = $form.prev();
  alert($commentInput.attr("id"));
});

ближайший docs | предыдущие документы

Довольно классный материал. Я в основном просто искал его

  • 0
    я хочу получить id comment16
  • 0
    И это должно сделать это
Показать ещё 4 комментария
0

Вам не нужно выполнять ввод формы внутри кнопки "Попробовать":

$('#save').click(function() {
  var $this = $(this);
  $form = $this.closest(".form"); 
  $commentInput = $form.prev();   
    parameter = $commentInput.children().attr('id');
    parameter = parameter.replace('comment','');
    alert(parameter);
});

скрипка

Кроме того, вы можете связать свое событие с формой, затем вам нужно изменить тип своей кнопки для отправки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню