Javascript 按类选择多个元素的文本内容
我想做一个搜索演示。我的问题是,我有一个父div,其中有两个子div。两个子div具有相同的类(RLTRightDiv)。我想搜索所有内容。你能告诉我怎样才能做到这一点吗。它当前仅搜索父div的第一个子级 示例“离开”出现在两个div中Javascript 按类选择多个元素的文本内容,javascript,jquery,Javascript,Jquery,我想做一个搜索演示。我的问题是,我有一个父div,其中有两个子div。两个子div具有相同的类(RLTRightDiv)。我想搜索所有内容。你能告诉我怎样才能做到这一点吗。它当前仅搜索父div的第一个子级 示例“离开”出现在两个div中 var searchIndex=-1; var searchTermOld=''; $(文档).ready(函数(){ /* 搜索功能方法。 */ $('.searchbox')。在('change',函数(){ if($(this.val()=''){ va
var searchIndex=-1;
var searchTermOld='';
$(文档).ready(函数(){
/*
搜索功能方法。
*/
$('.searchbox')。在('change',函数(){
if($(this.val()=''){
var选择器=“#fullContainer.RLTRightDiv”;
$(选择器+span.match')。每个(函数(){
$(this.replace为($(this.html());
});
}
searchIndex=-1;
$('.searchNext').attr(“禁用”、“禁用”);
$('.searchPrev').attr(“禁用”、“禁用”);
searchTermOld=$(this.val();
});
$('.searchbox')。在('keyup',函数(){
var选择器=“#fullContainer.RLTRightDiv”;
if($(this.val()=''){
$(选择器+span.match')。每个(函数(){
$(this.replace为($(this.html());
});
}
if($(this).val()!==searchTermOld){
$(选择器+span.match')。每个(函数(){
$(this.replace为($(this.html());
});
searchIndex=-1;
$('.searchNext').attr(“禁用”、“禁用”);
$('.searchPrev').attr(“禁用”、“禁用”);
}
});
//搜索点击法
$('.search')。在('click',函数(){
如果(searchIndex==-1){
var searchTerm=$('.searchbox').val();
如果(searchTerm==''){
PG_警报(“请插入文本”)
返回;
}
如果(searchTerm=='b'| | searchTerm=='br'| | searchTerm=='r'){
返回;
}
setTimeout(函数(){
searchAndHighlight(searchTerm);
},300);
}否则
{
//纳文
setTimeout(函数(){
searchNext();
},300);
}
如果($('.match')。长度>1){
$('.searchNext').removeAttr(“已禁用”);
$('.searchPrev').removeAttr(“禁用”);
}
});
$('searchNext')。在('click',searchNext')上;
});
/*
搜索并突出显示文本方法。
*/
函数searchAndHighlight(searchTerm){
如果(搜索术语){
var searchTermRegEx,匹配项;
var选择器=“#fullContainer.RLTRightDiv”;
$(选择器+span.match')。每个(函数(){
$(this.replace为($(this.html());
});
试一试{
searchTermRegEx=new RegExp(“(“+searchTerm+”)”,“ig”);
}捕获(e){
返回false;
}
$('.highlighted').removeClass('highlighted');
matches=$(选择器).text().match(searchTermRegEx);
if(matches!==null&&matches.length>0){
var txt=$(选择器).html().replace(searchTermRegEx,$1');
$(选择器).html(txt);
searchIndex++;
$('.match:first').addClass('突出显示');
$(“#realTimeContents”)。设置动画({
scrollTop:$('.match').eq(搜索索引).get(0).offsetTop
});
返回true;
}否则{
console.log(“是==============”)
searchIndex=-1;
}
返回false;
}
返回false;
}
函数searchNext(){
var searchTerm=$('.searchbox').val();
如果(searchTerm==''){
PG_警报(“请插入文本”)
返回;
}
如果(searchTerm=='b'| | searchTerm=='r'| | searchTerm=='br'){
//PG_警报(“请”)
返回;
}
如果(搜索索引!=-1){
searchIndex++;
if(searchIndex>=$('.match').length){
//纳文端
searchIndex=-1;
}
$('.highlighted').removeClass('highlighted');
$('.match').eq(searchIndex).addClass('highlighted');
$(“#realTimeContents”)。设置动画({
scrollTop:$('.match').eq(搜索索引).get(0).offsetTop
});
}
}
.text()
仅返回与选择器匹配的第一个元素的文本。您需要使用.each()
在div上循环。请简化您的小提琴,仅再现与您的问题相关的内容,然后使用TidyUp按钮。
var searchIndex = -1;
var searchTermOld = '';
$(document).ready(function () {
/*
Search Functionality method.
*/
$('.searchbox').on('change', function () {
if ($(this).val() === '') {
var selector = "#fullContainer .RLTRightDiv";
$(selector + ' span.match').each(function () {
$(this).replaceWith($(this).html());
});
}
searchIndex = -1;
$('.searchNext').attr("disabled", "disabled");
$('.searchPrev').attr("disabled", "disabled");
searchTermOld = $(this).val();
});
$('.searchbox').on('keyup', function () {
var selector = "#fullContainer .RLTRightDiv";
if ($(this).val() === '') {
$(selector + ' span.match').each(function () {
$(this).replaceWith($(this).html());
});
}
if ($(this).val() !== searchTermOld) {
$(selector + ' span.match').each(function () {
$(this).replaceWith($(this).html());
});
searchIndex = -1;
$('.searchNext').attr("disabled", "disabled");
$('.searchPrev').attr("disabled", "disabled");
}
});
//Search Click method
$('.search').on('click', function () {
if (searchIndex == -1) {
var searchTerm = $('.searchbox').val();
if (searchTerm == '') {
PG_alert("Please Insert Text.")
return;
}
if (searchTerm == 'b'||searchTerm == 'br'||searchTerm == 'r') {
return;
}
setTimeout(function(){
searchAndHighlight(searchTerm);
},300);
} else
{
//naveen
setTimeout(function(){
searchNext();
},300);
}
if ($('.match').length > 1) {
$('.searchNext').removeAttr("disabled");
$('.searchPrev').removeAttr("disabled");
}
});
$('.searchNext').on('click', searchNext);
});
/*
Seacrh and highlight text method.
*/
function searchAndHighlight(searchTerm) {
if (searchTerm) {
var searchTermRegEx, matches;
var selector = "#fullContainer .RLTRightDiv";
$(selector + ' span.match').each(function () {
$(this).replaceWith($(this).html());
});
try {
searchTermRegEx = new RegExp('(' + searchTerm + ')', "ig");
} catch (e) {
return false;
}
$('.highlighted').removeClass('highlighted');
matches = $(selector).text().match(searchTermRegEx);
if (matches !== null && matches.length > 0) {
var txt = $(selector).html().replace(searchTermRegEx, '<span class="match">$1</span>');
$(selector).html(txt);
searchIndex++;
$('.match:first').addClass('highlighted');
$('#realTimeContents').animate({
scrollTop: $('.match').eq(searchIndex).get(0).offsetTop
});
return true;
} else {
console.log("yes===========")
searchIndex = -1;
}
return false;
}
return false;
}
function searchNext() {
var searchTerm = $('.searchbox').val();
if (searchTerm == '') {
PG_alert("Please Insert Text.")
return;
}
if (searchTerm == 'b'||searchTerm == 'r'||searchTerm == 'br') {
// PG_alert("Please .")
return;
}
if(searchIndex!=-1){
searchIndex++;
if (searchIndex >= $('.match').length) {
//naveen end
searchIndex = -1;
}
$('.highlighted').removeClass('highlighted');
$('.match').eq(searchIndex).addClass('highlighted');
$('#realTimeContents').animate({
scrollTop: $('.match').eq(searchIndex).get(0).offsetTop
});
}
}