jQuery在函数onclick中取值

时间:2019-06-23 10:03:03

标签: javascript jquery onclick

这个小脚本可从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” 语法

我只有这个问题,我尝试了不同的组合,但我从没尝试过

感谢进阶

5 个答案:

答案 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);

https://codepen.io/nsivanoly/pen/OemWNM

答案 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>