Javascript 仅当存在CSS类时才运行jQuery函数
我制作了一个简单的jQuery函数来修剪文本。我这样触发它:Javascript 仅当存在CSS类时才运行jQuery函数,javascript,jquery,html,function,Javascript,Jquery,Html,Function,我制作了一个简单的jQuery函数来修剪文本。我这样触发它: // JS function truncate() { <! – Stuff to do --> } truncate(); // ... // HTML <div class="Truncate" data-words="60"> <! – Text to Trim --> </div> 这是创造性的语法,只是为了让您理解 …提前谢谢。如果我答对
// JS
function truncate() {
<! – Stuff to do -->
}
truncate();
// ...
// HTML
<div class="Truncate" data-words="60">
<! – Text to Trim -->
</div>
这是创造性的语法,只是为了让您理解
…提前谢谢。如果我答对了,请简单回答
函数doStuff(元素){
log('doing stuff…');
}
$(函数(){
var truncates=$('.Truncate');
if(truncates.length){//在这里验证是否有该类的元素
doStuff(截断);
}
});代码>
如果我答对了,简单的回答
函数doStuff(元素){
log('doing stuff…');
}
$(函数(){
var truncates=$('.Truncate');
if(truncates.length){//在这里验证是否有该类的元素
doStuff(截断);
}
});代码>
这是一个带有IFEE函数的js代码:
(函数(){
var elmTranc=document.getElementsByClassName('Truncate');
如果(elmTranc){
对于(var i=0;i,这里是一个带有IFEE函数的js代码:
(函数(){
var elmTranc=document.getElementsByClassName('Truncate');
如果(elmTranc){
对于(var i=0;i另一个使用querySelector的简单解决方案
另一个使用querySelector的简单解决方案
您可以创建迷你jquery插件:
//首先包括jquery
$.fn.truncate=函数(){
返回$(this).each(函数(){
$(this.text($(this.text().substr(0,2));
});
};
$(“.truncate”).truncate()
$(“.someotherclass”).truncate();
Abc
Xyz
123
您可以创建一个迷你jquery插件:
//首先包括jquery
$.fn.truncate=函数(){
返回$(this).each(函数(){
$(this.text($(this.text().substr(0,2));
});
};
$(“.truncate”).truncate()
$(“.someotherclass”).truncate();
Abc
Xyz
123
我终于做到了
if( $('.Truncate').length ) {
(function() {
suff
})();
}
还好吗?我终于做到了
if( $('.Truncate').length ) {
(function() {
suff
})();
}
可以吗?您当前如何调用它?您得到了什么错误?听起来像是truncate
中的逻辑错误。在内部,我正在执行一系列依赖于类的操作。truncate但是问题只是因为函数在每个页面上都被调用。否则一切正常。我只希望它是c只有当该类的DIV存在时才调用$.fn.truncate=truncate
,然后您可以使用$('.truncate').truncate()
运行示例。您应该能够使用.map(JS native)或.each(Jquery函数)来应用truncate函数,而不使用if。本质上:$('.truncate').map(truncate)如果可以的话,我可以添加一些代码。你现在怎么调用它?你会遇到什么错误?听起来像是truncate
中的一个逻辑错误。在里面,我正在做一堆依赖于类的事情。truncate,但问题只是因为函数在每个页面上都被调用。否则一切都正常。我只希望只有当包含该类的DIV存在时才调用它。$.fn.truncate=truncate
,然后您可以使用$('.truncate')运行示例。truncate()
您应该能够使用.map(JS native)或.each(Jquery函数)来应用truncate函数而不使用if。本质上:$('.truncate').map(truncate)如果可以的话,我可以添加一些代码?好的,谢谢。那么只有这种方法吗?因为我对JS有点生疏。我知道使用vanilla JS可以从HTML元素调用一个函数,比如onload=“myFunction()”所以我认为使用jQuery可以做类似的事情。@rolfo85-理想情况下,您希望JavaScript与HTML分开-我相信还有其他方法可以做到这一点,但上述方法肯定是最简单的方法之一。当您在jQuery中定义选择器时,它会返回一个找到的对象数组。您可以使用类似于:document.on的方法load=findTruncates();然后在该func中放置上述代码。不要将document.onload与jquery一起使用,请使用jquery的document ready:$(函数(){findTruncates();})
Ok所以基本上IF只放在调用函数的地方,而不放在构建函数的地方。这有什么区别吗?好的,谢谢。所以只有这种方法吗?因为我对JS有点陌生。我知道使用vanilla JS可以从HTML元素调用函数,比如onload=“myFunction()”所以我认为使用jQuery可以做类似的事情。@rolfo85-理想情况下,您希望JavaScript与HTML分开-我相信还有其他方法可以做到这一点,但上述方法肯定是最简单的方法之一。当您在jQuery中定义选择器时,它会返回一个找到的对象数组。您可以使用类似于:document.on的方法load=findTruncates();然后在该func中,放置上面的代码。不要使用document.onload与jquery一起使用jquery的document ready:$(function(){findTruncates();});
好,那么基本上IF只放在调用函数的地方,而不是构建函数的地方。这有什么区别吗?
if( $('.Truncate').length ) {
(function() {
suff
})();
}