2014-02-12 5 views
-1

я не могу успешно получить строку, используя текст Jquery() У меня есть HTMLкак преобразовать текст JQuery элемент() в строку

<span>/</span> 
      <span onclick=" 
      var inner_text=$.trim($(this).text()); 

     if(inner_text=='Send Request'){ 

     var post_id=<?php echo $blog_id ;?>; 

     var event_date='<?php echo $blog_feeds['valid_date'] ?>'; 
     var post_text='<?php echo addslashes($blog_feeds['post_text']) ?>'; //if the string contains ' , then would have error 
     var request_text_id='<?php echo $blog_id.'comment_text';?>'; 


     var request_content=$('#'+request_text_id).val(); 
     var who_post='<?php echo $blog_feeds['username'] ;?>'; 


     $.ajax({ 
     url:'php/join_request.php', 
     method:'post', 
     data:{request_content:request_content,post_id:post_id,who_post:who_post,event_date:event_date,post_text:post_text}, 
     success:function(data){ 

     if(data=='ok'){ 


      $('<?php echo '#'.$blog_id.'request_w' ?>').html('You have sent '+who_post+' a joining reuqest on this event'); 
      $('<?php echo '#'.$blog_id.'request_button'; ?>').html('Request Sent'); 
      $('<?php echo '#'.$blog_id.'request_button'; ?>').css('opacity','0.7'); 
      $('<?php echo '#'.$blog_id.'request_button'; ?>').css('cursor','initial'); 
      $('<?php echo '#'.$blog_id.'comment_text';?>').val(''); 
     } 


     } 
     }) 
     } 
     " id="<?php echo $blog_id.'request_button'; ?>" class="j_request_button"> 



     <?php 
     $select_request=mysql_query("SELECT `id` FROM `join_request` WHERE `post_id`='$blog_id' AND `who_request`='$username'"); 


     if(mysql_num_rows($select_request)>=1){ 
     echo '<span style="opacity:0.7;cursor:initial">Request Sent</span>'; 

    } 
     else{ 

     echo '<span style="cursor:pointer">Send Request</span>'; 

     } 
     ?> 
     </span> 

если добавить предупреждение (inner_text) прямо перед тем, если , я могу успешно предупредить «отправленный запрос», но я не могу предупредить ok в инструкции if.

+0

Это строка. это просто не так, как вы думаете. вероятно, в нем есть пробел или строка. –

+0

Есть ли пробелы в HTML? Возможно, вам придется обрезать 'inner_text', чтобы игнорировать его. – Barmar

+0

, похоже, работает здесь http://jsfiddle.net/BkuSX/ – Huangism

ответ

3

Try:

var inner_text=$.trim($(this).text()); 

Это удалит все окружающее пустое пространство, которое, вероятно, если у вас есть разрывы строк между вашими пролетами.

+1

Так как jQuery здесь, я предлагаю использовать '$ .trim (string)' для поддержки браузера. Я не знаю текущие состояния поддержки для 'string.trim()' .. –

+0

MDN говорит, что он совместим с IE9. Я обновил, как было предложено. – Barmar

+0

Это работает! Я не знаю, где пробелы от –

0

Не помещайте полный сценарий в свой HTML. Дайте SPAN идентификатор, и использовать JQuery в отдельный тег сценария:

<span id="sent_request">sent request</span> 
<script> 
    $('#sent_request').click(function(){ 
    var inner_text=$(this).text(); 
    if(inner_text=='sent request'){ 
     alert('ok'); //not working 
    } 
    }); 
</script> 
+1

как это уместно? – njzk2

+0

Вы также изменили структуру HTML, у него были вложенные промежутки. – Barmar

+0

@ Бармар Это специально. – Paulpro

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