Tell me why it is impossible to wrap a block with text in the tag a?

<div class="trigger_list"> <img src="/upload/2e589.png" class="trigger_img"> <span class="trigger_text">ВСкст для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°</span> </div> var r = $(".trigger_list:contains('ВСкст')") $(".trigger_list:contains('ВСкст')").wrap( function(){ if($(this).text() == r) return "<a href='/index.php'></a>"; else return ""; }); 

    2 answers 2

     .text() 

     var r = $(".trigger_list:contains('ВСкст')").text(); console.log(r); $(".trigger_list:contains('ВСкст')").wrap( function(){ if($(this).text() === r){ return "<a href='/index.php'></a>"; }else { return ""; } }); 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div class="trigger_list"> <img src="/upload/2e589.png" class="trigger_img"> <span class="trigger_text">ВСкст для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°</span> </div> 

    Or simply

     $(".trigger_list:contains('ВСкст')").wrap( "<a href='/index.php'></a>" ); 

    because :contains so it checks for the presence of "ВСкст" .

    And if only the text is wrapped, then:

     $(".trigger_list span:contains('ВСкст')").wrap("<a href='/index.php'></a>"); 

    but I think this is understandable.

      You can still do so

       function wrap() { // ДостаСм исходный тСкст var text = $('.trigger_text').text(); // Π£Π±ΠΈΡ€Π°Π΅ΠΌ тСкст, ΠΈΠ½Π°Ρ‡Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ $('.trigger_text').text(''); // Π”Π΅Π»Π°Π΅ΠΌ ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΡƒ $('.trigger_text').append('<a href="/index.php">' + text + '</a>'); } wrap(); 
       <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="trigger_list"> <img src="/upload/2e589.png" class="trigger_img"> <span class="trigger_text">ВСкст для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°</span> </div>