2016-07-10 78 views
0

我正在循環使用php的大約四十個字符串。我目前使用substr()只顯示前170個字符。我使用jQuery來隱藏字符串的其餘部分,並創建一個鏈接來顯示其餘部分。這是我在循環代碼:用php循環和jquery顯示更多

echo "<span>" . $substring_1 . "</span><span class='dotdot'>...</span><span class='readmore'>" . $substring_2 . "</span><a href='#' class='clickmore'>Show more</a>"; 

這裏是jQuery的:

$(document).ready(function() { 
    $(".readmore").hide(); 
    $(".clickmore").click(function() { 
     $(".dotdot").hide(); 
     $(".readmore").show(); 
    }); 
}); 

此代碼的工作,但是,我想這只是「表現出更多的」對個人的字符串。現在,因爲我正在使用類選擇器,所以當單擊「顯示更多」時,它會爲循環中的每個實例「顯示更多」。

有沒有辦法只爲我點擊的循環實例「顯示更多」?

回答

0

你需要使用$(this)prev()

$(document).ready(function() { 
    $(".readmore").hide(); 
    $(".clickmore").click(function() { 
     $(this).prev().prev(".dotdot").hide();  //<<<<<<<<<<<<<<< 
     $(this).prev(".readmore").show(); //<<<<<<<<<<<<<<< 
    }); 
}); 

$(document).ready(function() { 
 
    $(".readmore").hide(); 
 
    $(".clickmore").click(function() { 
 
     $(this).prev().prev(".dotdot").hide();  //<<<<<<<<<<<<<<< 
 
     $(this).prev(".readmore").show(); //<<<<<<<<<<<<<<< 
 
     $(this).hide(); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<span>This is</span><span class='dotdot'>...</span><span class='readmore'> Complete string</span><a href='#' class='clickmore'>Show more</a> 
 

 
<hr /> 
 
<span>This is</span><span class='dotdot'>...</span><span class='readmore'> Complete string</span><a href='#' class='clickmore'>Show more</a> 
 

 
<hr /> 
 
<span>This is</span><span class='dotdot'>...</span><span class='readmore'> Complete string</span><a href='#' class='clickmore'>Show more</a>

+0

出於某種原因,這是行不通的。我需要更改一些html代碼嗎? – Matt