我使用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()。
感謝您的幫助!
嘗試'$('。f_hidden_p')。html()' – Hackerman 2014-12-04 20:11:17
你在哪裏渲染你的車把模板?在服務器或客戶端上? – Jack 2014-12-04 20:11:43
well'.val()'只適用於從表單字段獲取值,而不是html內容。但是你說得對,隱藏該元素不應該阻止'.text()'工作。 – Rhumborl 2014-12-04 20:11:50