2016-06-28 18 views
0
<a href="javascript:" id="highLowRating" tabindex="0"> 
<a href="javascript:" id="lowHighRating" tabindex="1"> 
$('#lowHighRating').click(function(){ 
    // interchange with highLowRating" and if already then do nothing. 
}); 
$('#highLowRating').click(function(){ 
    // interchange with lowHighRating" and if already then do nothing. 
}); 

我需要互換鏈接的位置,如果我點擊其中任何一個,如果他們已經在其相應的位置,然後什麼都不做,我試過.toggle()但它總是在變化的位置, 是小困惑在這裏。如何通過js或jquery在html中交換兩個元素,然後單擊其中的一個?

回答

0

您可以使用insertAfter()insertBefore()到另一個元素之前,後/插入元素。

$("#highLowRating, #lowHighRating").click(function(){ 
 
    var index = $(this).index() - 1; 
 
    if (index != $(this).attr("tabindex")){ 
 
     if (index == 0) 
 
      $(this).insertAfter($(this).siblings("a")); 
 
     else 
 
      $(this).insertBefore($(this).siblings("a")); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a href="javascript:" id="lowHighRating" tabindex="1">B</a> 
 
<a href="javascript:" id="highLowRating" tabindex="0">A</a>

+0

它什麼也不做,在'了'率仍然是開頭。 –

+0

「它什麼都不做」的含義是什麼?我工作在snippent。 – Mohammad

+0

它總是重新定位'a'是否點擊已經重新定位的物品。 如果「A」是頂部,那麼點擊「A」將保持在那裏。當我點擊「B」時,A被B和B替換爲A,然後當我點擊「B」時,則什麼都不做,我們必須捕捉每次只有第二個鏈接 –

0

HTML

<input type="button" value="click" /> 
<p class="one">one</p> 
<p class="two">two</p> 

的Javascript

$.fn.swap = function (elem) { 
    elem = elem.jquery ? elem : $(elem); 
    return this.each(function() { 
     $(document.createTextNode('')).insertBefore(this).before(elem.before(this)).remove(); 
    }); 
}; 

$('.one').on('click', function() { 
    alert(true); 
}); 

$('input').click(function() { 
    $('.one').swap('.two'); 
}); 

Demo

+0

需要點擊'了'但沒有外接按鈕 –

相關問題