【发布时间】:2017-11-07 20:33:44
【问题描述】:
我正在尝试在单击复选框时将自定义搜索文本添加到谷歌搜索栏,并在删除该复选框时删除所述文本。我已经想出了如何在文本区域中添加/删除文本以及如何将自定义文本放在搜索栏中,但是我在弄清楚如何用文本替换搜索栏中的自定义文本时遇到了一些困难单击这些复选框时的复选框。
HTML
<body>
<div id="content">
<div id="search">
<gcse:search></gcse:search>
<div class="check_content">
<div class="checkbox">
<input type="checkbox" value="Value 1" id="checkbox1" name="checkbox" />
<label for="checkbox1" ></label>
</div>
<span>Value 1</span>
</div>
<div class="check_content">
<div class="checkbox">
<input type="checkbox" value="Value 2" id="checkbox2" name="checkbox" />
<label for="checkbox2" ></label>
</div>
<span>Value 1</span>
</div>
<div class="check_content">
<div class="checkbox">
<input type="checkbox" value="Value 3" id="checkbox3" name="checkbox" />
<label for="checkbox3" ></label>
</div>
<span>Value 1</span>
</div>
</div>
<textarea id="text"></textarea>
</div>
<strong>Google Search Bar with Custom Text</strong>
<script>
(function() {
var cx = '014565979167738564771:fixr4qj_zfs';
var gcse = document.createElement('script');
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gcse, s);
})();
window.onload = function(){
document.getElementById('gsc-i-id1').placeholder = 'This is custom text';
};
</script>
它位于结束 body 标记的正上方。
将文本从复选框附加到文本区域的功能
$("input[name=checkbox]").change(function() {
updateAllChecked();
});
function updateAllChecked() {
$('#text').text('');
$("input[name=checkbox]").each(function() {
if (this.checked) {
let old_text = $('#text').text() ? $('#text').text() + ', ' : '';
$('#text').text(old_text + $(this).val());
}
})
}
还包括 JS Fiddle - https://jsfiddle.net/2pdkv6ph/1/
【问题讨论】:
-
在捕获“旧”文本之前,您将元素中的文本设置为
''。另外,你想在这里测试什么? ` $('#text').text() ? $('#text').text() + ', ' : ''` -
我正在将文本添加到文本框,但想将其添加到自定义谷歌搜索栏。我没有发任何短信 - 只需要弄清楚如何将文本添加到适当的位置
-
我了解您的最终目标。我在问你想用那一行代码做什么:
$('#text').text() ? $('#text').text() + ', ' : '因为那行代码可能没有检查你认为的条件。另外,为什么在该行代码之前将 $('#text') 元素的值设置为''?您正在清除文本,然后尝试捕获该元素的值。那是倒退。 -
我在教程中找到了代码 - cmsdk.com/javascript/…。
-
我在教程中找到了代码 - cmsdk.com/javascript/…。据我所知 - 如果单击的复选框被选中,它要么从复选框中的值文本添加文本 (value="X"),要么如果单击的复选框未选中,则删除文本。
标签: javascript jquery html google-search-api