2013-03-17 13 views
1

我有一點問題。我有一個表單輸入一個代碼,但表單輸入類名爲javascript中的空間

text-input small-input

我無法改變,因爲CSS問題,這一點,這就是問題所在,因爲當我在我的javascript添加空間碼,我的代碼不會因此在*符號工作了

Javascript代碼

$(document).ready(function() { 
    $('.text-input*small-input').keyup(function() { 
     var search_term = $(this) .val(); 
     $.post('search.php', {search_term:search_term}, function(data) { 
      $('.result').html(data); 

      $('.result li').click(function() { 
       var result_value = $(this).text(); 
       $('.text-input*small-input') .val(result_value); 
       $('.result').html(' '); 
      }); 

     }); 

    }); 
}); 

,需要有一個空間。任何方式來解決這個問題?謝謝!

+0

'$('.text-input')....'也可以。 – SachinGutte 2013-03-17 18:31:35

回答

4

你不想要一個空間,你想要什麼都沒有。只需要.text-input.small-input就可以讓選擇器引擎查找具有這兩個類的元素。

here是一個很好的文章,解釋多個零件選擇。

+0

作品!非常感謝! :) – 2013-03-17 18:32:07

+0

沒問題。另一個閱讀的好地方是MDN CSS選擇器頁面。 https://developer.mozilla.org/en-US/docs/CSS/Getting_Started/Selectors它有更多的信息。 – rlemon 2013-03-17 18:32:42

0

你有兩個問題。你不需要空間,而且你想在第二堂課上得到一個點。

要在CSS選擇器對同一對象指定兩個班的要求,你把兩個類名之間沒有空格:

$('.text-input.small-input') // find single object with both classes on it 

有了空間,它就不一樣了:

$('.text-input .small-input') // find .small-input with ancestor .text-input 

當你把它們之間的空間,即創建查找符合.text-input一個對象,並匹配.small-input和匹配的對象是孩子孩子一個選擇。它們之間沒有空間意味着兩個類必須位於同一個對象上。這是CSS規範的工作原理,不是jQuery特有的。


僅供參考,你是想用這個做:

$('.text-input small-input') // find <small-input> with ancestor that is .text-input 

試圖找到的<small-input>標籤,因爲你把無特殊字符前面說了的.text-input的ancesotr對象small-input,所以它被解釋爲標籤名稱。

+0

爲什麼downvote? – jfriend00 2013-03-17 18:37:53

+0

不是我,但可能是因爲「.text區段輸入。小輸入」並不意味着‘與父母的.text輸入發現。小輸入’,而是‘發現。小輸入點與祖先的.text輸入’ – 2013-03-17 18:44:42

+1

我我不會低調,但我不會低估,但有人可能有人想知道爲什麼你想在雷蒙之後添加一個新的答案。 – 2013-03-17 18:44:55