簡體   English   中英

Jquery / Javascript - 未捕獲TypeError:undefined不是函數

[英]Jquery / Javascript - Uncaught TypeError: undefined is not a function

谷歌沒有執行我的JS代碼。 在Firefox中一切正常

$('a[href="#pricends"]').click(function(){
    $("div.text_1").text(($("div.text_1").text() == 'smth1') ? 'smth2' : 'smth1')
    $("div.text_2").text(($("div.text_2").text() == 'smth2') ? 'smth1' : 'smth2')

if ( $('div.text_1').text().contains("smth1") ) {
//smth here
}

Chrome控制台輸出指向上方的“if”行。

未捕獲的TypeError:undefined不是函數(匿名函數)f.event.dispatch jquery-1.7.2.min.js:3 h.handle.i

如何解決這個問題? 現在沒有什么可以記住,命名功能並在之前與bool進行比較?

使用這樣的東西:

if ( $('div.text_1').text().indexOf("smth1") !== -1 ) {
  //smth here
}

如果文本中某處存在“smth1”, indexOf將返回-1以外的值。

您不能對.text()返回的文本值調用.contains()。

如果在使用jQuery解壓縮后測試該值,那么應該沒問題。

var divText = $('div.text_1').text();
if(divText.indexOf("smth1") != -1){
  //do your stuff...
}

為什么不在選擇要追加的文本時使用相同的檢查:

if ( $('div.text_1').text() === "smth1" ) {
  // do it
}

另一種方法是使用單個類來完成它

DEMO

<a href="#pricends">CLICK</a>

<div class="smth">smth1</div>
<div class="smth">smth2</div>

JQ:

var $smth = $(".smth"); // Cache your elements

$('a[href="#pricends"]').click(function( e ){

  e.preventDefault(); // Prevent Browser default anchor behavior

  $smth.text(function(i, txt){
    return txt=='smth1'?'smth2':'smth1';
  });

});

有點擴展:

var $smth = $(".smth"); // Cache your elements

$('a[href="#pricends"]').click(function( e ){  
  e.preventDefault();
  $smth.text(function(i, txt){
    if(txt==="smth1"){
      // do something with $(this)
      // or do something else
    }
    // and afterwards thange text
    return txt=='smth1'?'smth2':'smth1';
  });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM