[英]Calling user defined javascript function on jQuery element
我一直在嘗試在jQuery元素上調用用戶定義的JavaScript函數,盡管我在這里看到了一些有關它的主題,但是在將其邏輯應用於我的情況時仍然遇到了一些麻煩。 到目前為止,這是我嘗試過的:
Javscript和jQuery:
$(document).ready(function() {
// JavaScript function
nl2br = function (str, is_xhtml) {
var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '<br ' + '/>' : '<br>';
return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + breakTag + '$2');
}
// jQuery Call
if ( ! $('.mediaDesc:contains("p")').length || ! $('.mediaDesc:contains("div")').length || ! $('.mediaDesc:contains("span")').length ) {
nl2br(this);
}
}); //end document ready
HTML:
<div class="mediaDesc">
Hello World!
I am text on a new line soon to have a br tag before me!
</div>
我的目標是動態查找帶有mediaDesc類的div,以查看其內部內容是否包含html標簽,例如p,span或div。 如果不是,則對其應用nl2br JavaScript函數。 任何幫助,將不勝感激。 提前致謝。
根據當前的可用信息,我相信您需要這樣的東西:
$(".mediaDesc").each(function () {
if ($(this).find("p").length == 0 || $(this).find("div").length == 0 || $(this).find("span").length == 0)
{
$(this).html(nl2br($(this).html()));
}
});
編輯:修復對.contains
.contains
用於在節點內搜索文本。 您想要的是:
$('.mediaDesc').not(':has(p, div, span)').each(nl2br)
如果您需要處理節點,並且僅使用text
或html
調用nl2br,請執行以下操作:
$('.mediaDesc').not(':has(p, div, span)').each(function(){
nl2br( $(this).html() )
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.