2013-06-05 3 views
1

У меня возникают проблемы с эффективностью моего кода jQuery для сложного приложения, которое я пишу. Есть ли способ сделать этот код лучше? Множество функций parent() не могут, безусловно, быть лучшим вариантом!Как я могу упростить этот код предупреждения на основе jQuery?

Это мой JQuery код (за пределами документа готовый код):

$(".icon .remove a").click(function (m) { 
    m.preventDefault(); 
    var caption = $(this).parent().parent().children("a").children(".caption").contents().text(); 
    confirm("Are you sure you want to delete "+caption+"?"); 
}); 

И это HTML в вопрос:

<div class="icon"> 
    <span class="config"><a href="#"><i class="icon-cog"></i></a></span> 
    <span class="remove"><a href="#"><i class="icon-remove-sign"></i></a></span> 
    <a href="#"> 
     <span class="image"><img src="https://si0.twimg.com/profile_images/3653636892/753cd0095b234e216b1ffc50911a0203_bigger.png" alt="ProbabilityWolf"></span> 
     <span class="caption">ProbabilityWolf</span> 
    </a> 
</div> 

Я предполагаю, что должен быть способ, чтобы упростить получение подпись! Бит здесь, называемый «значок», повторяется много раз и всегда имеет другую подпись, но всегда имеет ту же структуру.

+1

использование '$ (это) .closest ('div.icon') найти ('Надпись') текст();.' – Omar

ответ

3

Вы можете использовать .closest() с селектором, чтобы найти элемент. .

var caption = $(this).closest(".icon").find("a .caption").text(); 
+0

Ну, что, кажется, работает. ("Значок. ") '$ (Это) .closest. Найти (". Надпись"). Текст()'. Это то, что вы имели ввиду? – Forest

+0

Вау, я добавил этот комментарий одновременно XD – Forest

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