2014-12-04 27 views
0

我使用HandlebarsJS和Yii和PHP來呈現頁面。下面是一個頁面中的html /句柄代碼塊jQuery .val()/。text()不適用於特定的html塊

{{#if embed_link}} 
     <p class='f_hidden_p'> 
      <a href='{{embed_link}}'> 
       {{embed_link}} 
      </a> 
     </p> 
     <div class = 'link-wrapper'> 
      <div class = 'link-container'> 
       <a class = 'link-anchor-box'> 
        <div class = 'link-pic-wrap'> 
         <div class='playable_wrap'> 
         <div class='play_btn'></div> 
          <div class = 'link-img'></div> 
         </div> 
         <div class = 'link-text-data'> 
          <div class = 'link-text-title'> 
          <span class = 'link-text-website'></span> 
          </div> 
          <div class = 'link-text-about'></div> 
         </div> 
        </div> 
       </a> 
      </div> 
     </div> 
{{/if}} 

上述代碼僅在embed_link爲true時運行。在我的測試案例中,當它運行時,我需要使用jQuery從「f_hidden_​​p」中獲取文本。所以在我的js文件中,

$(document).ready(function(){ 
    console.log($('.f_hidden_p').text()); 
    console.log($('.f_hidden_p').val()); 
}); 

由於某種原因,這將返回一個空字符串或undefined。當我檢查元素並檢查時,我可以看到{{embed_link}}的值有一個不是空字符串的值。 之後,我試着給錨標籤一個唯一的ID「embed_link」並嘗試。

$(document).ready(function(){ 
     console.log($('#embed_link').text()); 
     console.log($('#embed_link').val()); 
}); 

但是,這也沒有工作。我在HTML中也使用了不同的div的相同語法,這些div也在handlebars塊中,並且工作得很完美。由於某些原因,這對於此塊不起作用。 注意:.f_hidden_​​p隱藏 - >它在CSS中顯示爲'none'。但我確信不應該停止獲取文本的.text()或.val()。

感謝您的幫助!

+0

嘗試'$('。f_hidden_​​p')。html()' – Hackerman 2014-12-04 20:11:17

+2

你在哪裏渲染你的車把模板?在服務器或客戶端上? – Jack 2014-12-04 20:11:43

+1

well'.val()'只適用於從表單字段獲取值,而不是html內容。但是你說得對,隱藏該元素不應該阻止'.text()'工作。 – Rhumborl 2014-12-04 20:11:50

回答

0

我加入這個更好的格式化...

你試過嗎?

$(document).ready(function(){ 
    setTimeout(function() { 
    console.log($('.f_hidden_p').text()); 
    console.log($('.f_hidden_p').val()); 
    }, 2000); 
}); 

...沒有結果?

+0

OP在註釋中已經注意到這不起作用,而在另一個評論說,文本是在AJAX調用後呈現的。不僅'setTimeout'不能保證在定時器耗盡之前文本已經存在,如果文本早先被渲染,它會造成不必要的延遲。 – cautionbug 2014-12-04 20:37:07

+0

我還沒有看到任何代碼或結果。我只是想確保正確的測試正在發生。 ajax調用不能保證,但如果他在檢查時看到文本,數據就會在某個時刻到達。我不會拖延......只是雙重檢查正在進行的測試到這一點。 – rfornal 2014-12-04 20:42:38

相關問題