2012-06-22 83 views
0

我試圖通過.list裏面的p標籤內容搜索,我可能只是在複雜化,但我的警報不工作,也許是因爲其他代碼我在頁面上沒有發揮作用,但我想知道是否有人能幫我弄清楚我哪裏出錯了。jQuery搜索使用標籤內的.find

JS

  $(document).ready(function() { 
      var sresults = $('.mainsearch input').val(); 

      var sfinder = $('.list p').find(sresults).text(sresults); 


      $('.mainsearch input').keyup(function() { 
      $('.search-help').append(sfinder); 

      alert(sfinder); 

      }); 
      }); 

HTML

  <div class="mainsearch"> 
      <input/> 
      <div class="search-help">Results: 
      </div> 
      </div> 


      <div class="list"> 
      <span><p>test</p></span> 
      <span><p>another result</p></span> 
      <span><p>yet another result</p></span> 
      </div> 
+0

什麼是 「我的警報不工作」 是什麼意思?你想要做什麼,它在做什麼?你的代碼應該在每次你從你的'輸入'字段的一個鍵上拿起一個手指時提醒一些事情(可能是一個空的對話框,因爲'sfiner'沒有被定義在任何地方)。 – Amadan

+0

sresults不會包含任何東西,因爲你的'input'標籤沒有任何屬性,所以找不到任何東西 – SpaceBison

+0

'sfinder'應該包含什麼?你用來給這個變量賦值的代碼沒有意義。 – Blazemonger

回答

1

這樣的事情?

$(document).ready(function() { 
    $('.mainsearch input').keyup(function() { 
    var sresults = $('.mainsearch input').val(); 
    var sfinder = $('p:contains('+sresults+')').text(); 
    $('.search-help').text("Results:" + sfinder); 
     alert(sfinder); 
    }); 
}); 

http://jsfiddle.net/h7uYB/

更新:

試試這個:

http://jsfiddle.net/h7uYB/2/

+0

這正是我要感謝的。 – Blynn

+0

有沒有辦法在這之後添加一箇中斷.. var sfinder = $('p:contains('+ sresults +')')。text(); +'
' – Blynn

+0

@Blynn我正在更新答案。 – undefined

1

錯字?

alert(sfiner)

應該

alert(sfinder)

1

嘗試使用:contains() Selector。來自網站:

說明:選擇包含指定文本的所有元素。 匹配文本可以直接出現在所選元素,任何元素的後代或其組合中。與屬性值選擇器一樣,contains()的括號內的文本可以寫爲裸字或用引號包圍。文本必須有匹配的案例才能被選中。

所以你:

var sfinder = $('.list p:contains(' + sresults + ')'); 
0

你只是想返回匹配什麼類型的段落?然後,你要使用:contains()

$(document).ready(function() { 
    $('.mainsearch input').keyup(function() { 
     var sresults = $('.mainsearch input').val(); 
     var sfinder = $('.list p:contains("' + sresults + '")'); 
     //$('.search-help').append(sfinder); 

     console.log(sfinder); 

    }); 
});​ 

http://jsfiddle.net/mblase75/kQnTV/

你可能會瞄準了這一點,雖然:

$(document).ready(function() { 
    $('.mainsearch input').keyup(function() { 
     var sresults = $('.mainsearch input').val(); 
     var sfinder = $('.list p:contains("' + sresults + '")'); 
     $('.search-help').html(sfinder.clone()); 
    }); 
});​ 

http://jsfiddle.net/mblase75/kQnTV/1/