Вопрос по jquery – Найти элемент в родительском контейнере с помощью jQuery

11

Я пытаюсь настроить таргетинг на элемент в моей LI, только у меня проблемы, я прочитал документацию jQuery, но не могу понять, что я делаю неправильно?

На событии клика я хочу найти элемент и изменить HTML внутри ...

http://jsfiddle.net/68ePW/3/

<code><li>
    <h2>400</h2>
    <form>
        <input type='submit' class='click' value='send'>                
    </form>
</li>

$('.click').click(function(){
    $(this).parent('li').closest('h4').html('asdasd');
});
</code>
$(this).closest('li').find('h2') ? zerkms
Я думаю, что вы хотели использовать «h2» как параметр для closest () Christian
Какой элемент? И что с этим делать? Покажи свой кодhereJS Fiddle - приятное дополнение, но ваши вопросы должны иметь смысл и сохранять свою полезность, не полагаясь на внешние сайты. David Thomas

Ваш Ответ

1   ответ
23

li сulРазвернутыйli неверный HTML):

<ul>
    <li>
        <h2>400</h2>
        <form>
            <input type='submit' class='click' value='send'>                
        </form>
    </li>    
</ul>​​​​​​​​​​​​​​​​​​

И следующий jQuery:

$('.click').click(function(){
    $(this).parent('li').closest('h4').html('asdasd');
});

Похоже, вы пытаетесь найтиh4 в пределахli, У вас много проблем:

Using parent() only looks up to the immediate parent element of the current element; use closest() instead, to look up through the ancestors until it finds a matching element, closest() (as mentioned) looks up through the ancestor elements, while you're trying to find an element among the descendants of the li element. Use find(), You were searching for an h4 element, which didn't exist. You needed (I assume) to find the h2 that was present in the DOM.

Так:

$('.click').click(function(){
    $(this).closest('li').find('h2').html('asdasd');
});

JS Fiddle demo.

Рекомендации:

closest(). find(). parent().
Я не знаю; чтобы ответить, что мы должны видеть ваш сайт и иметь некоторое представление о том, что там происходит.
& quot; Я вижу, что это работает на jsfiddle, только на моем реальном сайте & quot; --- и сейчасyour работа состоит в том, чтобы заставить это работать. Мы здесь, чтобы понять, как это сделать, а не сделать все для вас.
Спасибо @David Thomas, я вижу, что он работает на jsfiddle, но не работает на моем реальном сайте, при загрузке страницы форма изначально отображается: нет и становится видимой только при нажатии верхней части кнопки, переключающей ее вид. Может ли это быть причиной? Liam

Похожие вопросы