2016-07-29 46 views
0

我想从链接<a class="active">...</a>中获取文本,该链接是由wordpress中的tab-slider像图片中创建的。从链接中获取文本使用jQuery

enter image description here

这里是我的jQuery

jQuery(document).ready(function(){ 
     var text = jQuery('.mk-tab-slider-nav a.active').text(); 
     alert(text + ""); 
    }); 

只有当我使用jQuery('.mk-tab-slider-nav a')它拥有来自所有<a />文本。

但是,当我使用'.mk-tab-slider-nav a.active''.mk-tab-slider-nav .active''.mk-tab-slider-nav:first-child'时,它只是变空而已,它也会变空。

请帮助我,会发生什么<a />导致我们不能.text()

+0

以.html()尝试并请发表您的全功能HTML –

+0

我不能得到充分的HTML自己,它的WordPress的项目和多数民众的HTML代码是由WordPress的标签滑块创建 – pexichdu

+0

$('。mk-tab- ')发现('。滑块-NAV a.active')的HTML();试试这个 – BlackBurn027

回答

1

你得到一个“空”查询,因为在文档就绪事件之后添加active classname ...在选项卡滑块插件启动时添加该类名称(或者,当某人指定一个标签)上KS ...

你需要对插件一起来看看他们的事件(如果它暴露了一个API集)......

一个肮脏的解决方案可以对DOM可以将手表...

jQuery(document).on(
 
    "tabSliderActiveText", (event, data) => { 
 
    console.log("TEXT", data); 
 
    } 
 
); 
 

 
jQuery(document).ready(($) => { 
 
    let selector = '.mk-tab-slider-nav a.active'; 
 
    
 
    let interval = window.setInterval(() => { 
 
    let links = $(selector); 
 
    if(links.length < 1) { 
 
     return; 
 
    } 
 
    
 
    window.clearInterval(interval); 
 
    $(document).trigger("tabSliderActiveText", { 
 
     text: links.text(), 
 
     item: links 
 
    }); 
 
    }, 200); 
 
    
 
});
.active { 
 
    background: lightseagreen; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="mk-tab-slider-nav"> 
 
    <a>FOO</a> 
 
</div> 
 
<div class="mk-tab-slider-nav"> 
 
    <a>FOO 1</a> 
 
</div> 
 
<div class="mk-tab-slider-nav"> 
 
    <a>FOO 2</a> 
 
</div> 
 
<div class="mk-tab-slider-nav"> 
 
    <a>FOO 3</a> 
 
</div> 
 
<div class="mk-tab-slider-nav"> 
 
    <a>FOO 4</a> 
 
</div> 
 

 
<script> 
 
    //Mock the WP Plugin 
 
    document.addEventListener("DOMContentLoaded",() => { 
 
     window.setTimeout(() => { 
 
     document 
 
     .querySelector("a") 
 
     .classList 
 
     .add('active') 
 
     ; 
 
     }, 3000); 
 
    }); 
 
</script>

+0

嗨,我认为你是对的我使用window.setTimeout(show_popup,5000),它似乎工作,但你的代码是非常复杂的,我现在不能理解。有没有办法让它像我一开始那样等待5秒的setTimeout,但是当我点击另一个链接后,当活动类更换速度很快时,就会获得文本?我很新,请帮助我。 – pexichdu

+0

你需要看看你正在使用的插件......每个好的插件都公开了一组API,例如,我想,它公开了一些JavaScript事件,如“onTabChange”,你可以在其中附加一个回调...去那个插件的主要网站! – Hitmands

0

$(document).ready(function(){ 
 
    console.log($('div.mk-tab-slider-nav a.active').text()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="mk-tab-slider-nav"> 
 
    <a href="#" >123</a> 
 
    <a href="#" class="active">456</a> 
 
</div>

获取文本工作实例