TypeError不是函数-val()



我知道这个问题已经很多,但我似乎找不到我想要的答案。我遇到了这个错误:

Uncaught TypeError: $(...).find(...).hasClass(...).val is not a function
at attach_selectors (commercial.js:768)
at HTMLDocument.<anonymous> (commercial.js:117)
at j (jquery-1.11.0.min.js:2)
at Object.fireWith [as resolveWith] (jquery-1.11.0.min.js:2)
at Function.ready (jquery-1.11.0.min.js:2)
at HTMLDocument.K (jquery-1.11.0.min.js:2)

我知道这与Val((有关,但是如果有人可以将我指向正确的方向,那将是很棒的。我需要创建一个新功能吗?

var stInput=$("form").find("input").hasClass("st-search").val();
$("#submitSearch").off("click").on("click", function(e) {
  e.preventDefault();
  $(".gsc-search-button").find(stInput).click();
}
);
<form class="st-search">
  <div class="gcse-search"><input type="text" class="st-default-search-input" placeholder="Search..." />
    <xsl:text> </xsl:text>
  </div>
  <button class="btn btn-secondary-bel gsc-search-button gsc-search-button-v2" id="submitSearch" title="search">Search</button>
</form>

hasClass返回没有val功能的truefalse。也许您想将选择器调整为$('form.st-search')

此行返回布尔值,而不是jQuery对象

var stInput = $("form").find("input").hasClass("st-search");

可能您想这样做:

var stInput = $("form").find("input").val();

.hasClass返回真或否。文档。

似乎您想要的是:

var stInput = $("form input.st-search").val();

添加了片段并删除了hasClass(),因为此功能返回一个布尔值。

var stInput = $("form").find("input").val();
$("#submitSearch").off("click").on("click", function(e) {
    e.preventDefault();
    //Update value
    stInput = $("form").find("input").val()
    console.log(stInput);
    $(".gsc-search-button").find(stInput).click();
  }
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form class="st-search">
  <div class="gcse-search"><input type="text" class="st-default-search-input" placeholder="Search..." />
    <xsl:text> </xsl:text>
  </div>
  <button class="btn btn-secondary-bel gsc-search-button gsc-search-button-v2" id="submitSearch" title="search">Search</button>
</form>

hasclass((函数仅返回布尔值。

var data = $(" form"(。查找("输入"(。val((; 

var stInput = $(".st-default-search-input").val();
$("#submitSearch").off("click").on("click", function(e) {
    e.preventDefault();
    $(".gsc-search-button").find(stInput).click();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<form class="st-search"><div class="gcse-search"><input type="text" class="st-default-search-input" placeholder="Search..." /><xsl:text> </xsl:text></div>
<button class="btn btn-secondary-bel gsc-search-button gsc-search-button-v2" id="submitSearch" title="search">Search</button>
</form>

最新更新