这个小脚本可从select中获取值
<script>
jQuery(document).ready(function()
{
var clv1=jQuery("#tr_val").val();
});
</script>
在此div上单击并执行函数open_win时,我需要在select函数内部发送选择值 jQuery(“#tr_val”)。val();
<div onclick="open_win(""+clv1,'test');">Test</div>
问题是我不知道如何在单击div测试时在函数 open_win 中写正确的插入值“ clv1” 语法
我只有这个问题,我尝试了不同的组合,但我从没尝试过
感谢进阶
答案 0 :(得分:0)
您可以添加一个全局变量,并在更改选择后可以修改该变量。
在div元素上,您可以添加id,并将事件处理程序写入脚本标签(在这里您可以访问该全局变量)。
注意:但是,全局变量不是正确的方法,但是您可以将其用于学习/测试。
答案 1 :(得分:0)
我认为这就是您要的内容,我对内容进行了一些重新组织。现在,您可以从onclick
的内联div
调用自定义函数。我认为单击即可完成文档的准备工作,而不是试图立即获取文档的价值,而是简化了过程。
让我知道这是否不是您想要的。
// Add a function which you call from the inline onclick
function open_win() {
// Gather the value of the input
console.log( $("#tr_val").val() );
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="tr_val" value="one">
<div onclick="open_win()">Test</div>
答案 2 :(得分:0)
您可以尝试类似的操作,将值存储在div
的{{1}}属性中,然后在函数内部访问它。
data
注意:必须在调用<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
<script>
function open_win(){
$(this).data("val", $("#tr_val").val());
console.log($(this).data('val'));
}
</script>
<div onclick="open_win()">Test</div>
<select id="tr_val">
<option value="value1">Value 1</option>
<option value="value2">Value 2</option>
<option value="value3">Value 3</option>
</select>
函数之前对其进行定义。
答案 3 :(得分:0)
您可以使用ES6方式
<h1>Hello World!</h1>
<input id="tr_val" value="element value" hidden>
<div class="open-div" data-text='test'>Test</div>
(function ($) {
$(function () {
let tr_val = $('#tr_val').val();
$('.open-div').on('click', function (e) {
let $this = $(this);
let text = $this.data("text");
console.log(tr_val);
console.log(text);
});
});
})(jQuery);
答案 4 :(得分:0)
如果要在单击div时获取ID为tr_val
的元素的值,请尝试类似的操作。将click事件也放入javascript中。另外,如果要像尝试内联那样运行某个函数,则需要定义该函数,但也可以在脚本标签/ js文件中使用它
function open_win(someArg) {
// do something
}
<div class="test-class">Test</div>
<script>
$(document).ready(function() {
var clv1 = $("#tr_val").val();
// anonymous function
$('.test-class').on('click', function(e) {
console.log(clv1);
})
// named function with a parameter
$('.test-class').on('click', function(e) {
open_win(clv1);
})
// if you wanted named function with parameter to look a bit cleaner
// using es6 arrow function
$('.test-class').on('click', (e) => open_win(clv1))
// name function no param (event is the first argument passed in by default but you can't pass params in like this)
$('.test-class').on('click', open_win)
});
</script>