jQuery 的 .split() 未转换字符串
jQuery's .split() not converting a string
我创建了一个 AJAX 搜索字段。 Ajax 搜索有效,正在成功添加项目。当我删除添加的搜索项时。我正在点击添加的搜索值。将它们转换为一个数组,然后我将执行 inArray 并删除匹配的。但问题是当我对 jQuery 使用 split 时。它不是将简单的字符串转换为数组。这里是 HTML.
$('.placeholder').on("click", "li", function() {
parent = jQuery('.supplier-ajax'); // Parent
id = jQuery(this).attr('id');
slug = jQuery(this).attr('slug');
supplierval = parent.find('#product_supplier').val();
console.log(parent);
console.log('placeholderclick');
console.log(slug);
console.log(id);
console.log(supplierval);
console.log(typeof supplierval)
supplierarray = $(supplierval).toString().split(",");
console.log(supplierarray);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="search-field supplier-ajax">
<div class="placeholder">
<input type="search" id="woocommerce-product-supplier-field" class="supplier-field field form-control valid" autocomplete="off" aria-invalid="false">
<ul class="placeholder-items">
<li class="supplier-ajax-placeholder" id="726" slug="bottle">Bottle</li>
</ul>
</div>
<i class="fa fa-search" aria-hidden="true"></i>
<div class="hidden" id="suggesstion-box">
<ul>
<li id="726" slug="bottle">Bottle</li>
<li id="1011" slug="eurobottle">Eurobottle</li>
<li id="612" slug="bottle-promotions">Bottle Promotions</li>
</ul>
<i class="fa fa-circle-o-notch fa-spin fa-3x fa-fw hidden"></i>
</div>
<input type="hidden" id="supplier-nonce" name="" value="93b8e7346b">
<input type="hidden" id="product_supplier" name="supplier" value="bottle">
</span>
控制台输出
placeholderclick
bottle
726
bottle
string
["[object Object]"]0: "[object Object]"length: 1__proto__: Array(0)
supplierval 的类型是字符串,但 split 仍然不起作用。我试过从 supplierarray 中删除 .toString() 但它给出了 .split();找不到函数错误。不知道是什么问题
为什么 split 不能处理 typeof 也是字符串的简单字符串。
JSFIDDLE:https://jsfiddle.net/t3xn1v7m/
您正在使用 $()
创建 jQuery 对象,然后使用 .toString()
将该对象转换为字符串。
只需在 supplierval
变量上使用 .split()
supplierarray = supplierval.split(",");
我创建了一个 AJAX 搜索字段。 Ajax 搜索有效,正在成功添加项目。当我删除添加的搜索项时。我正在点击添加的搜索值。将它们转换为一个数组,然后我将执行 inArray 并删除匹配的。但问题是当我对 jQuery 使用 split 时。它不是将简单的字符串转换为数组。这里是 HTML.
$('.placeholder').on("click", "li", function() {
parent = jQuery('.supplier-ajax'); // Parent
id = jQuery(this).attr('id');
slug = jQuery(this).attr('slug');
supplierval = parent.find('#product_supplier').val();
console.log(parent);
console.log('placeholderclick');
console.log(slug);
console.log(id);
console.log(supplierval);
console.log(typeof supplierval)
supplierarray = $(supplierval).toString().split(",");
console.log(supplierarray);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="search-field supplier-ajax">
<div class="placeholder">
<input type="search" id="woocommerce-product-supplier-field" class="supplier-field field form-control valid" autocomplete="off" aria-invalid="false">
<ul class="placeholder-items">
<li class="supplier-ajax-placeholder" id="726" slug="bottle">Bottle</li>
</ul>
</div>
<i class="fa fa-search" aria-hidden="true"></i>
<div class="hidden" id="suggesstion-box">
<ul>
<li id="726" slug="bottle">Bottle</li>
<li id="1011" slug="eurobottle">Eurobottle</li>
<li id="612" slug="bottle-promotions">Bottle Promotions</li>
</ul>
<i class="fa fa-circle-o-notch fa-spin fa-3x fa-fw hidden"></i>
</div>
<input type="hidden" id="supplier-nonce" name="" value="93b8e7346b">
<input type="hidden" id="product_supplier" name="supplier" value="bottle">
</span>
控制台输出
placeholderclick
bottle
726
bottle
string
["[object Object]"]0: "[object Object]"length: 1__proto__: Array(0)
supplierval 的类型是字符串,但 split 仍然不起作用。我试过从 supplierarray 中删除 .toString() 但它给出了 .split();找不到函数错误。不知道是什么问题
为什么 split 不能处理 typeof 也是字符串的简单字符串。
JSFIDDLE:https://jsfiddle.net/t3xn1v7m/
您正在使用 $()
创建 jQuery 对象,然后使用 .toString()
将该对象转换为字符串。
只需在 supplierval
变量上使用 .split()
supplierarray = supplierval.split(",");