我有一个javascript函数定义如下(注意它不使用jquery):
function getCalculationFormsByType(selectObject, parentNode, countIndex)
{
var operationID = parseInt(selectObject.value, 10);
var divs = parentNode.getElementsByTagName("DIV");
// the rest of the function goes here, it isn't really important ...
}
该函数按以下方式执行(同样,没有jquery):
<select name="operationChoose[]" onchange="getCalculationFormsByType(this, this.parentNode.parentNode, '1')" >
到目前为止一切正常。问题是我需要在页面加载时对页面上的所有select
元素执行此功能。像这样(我的想法使用jquery,但解决方案没有必要):
$("document").ready(function(){
$("select[name='operationChoose[]']").each(function(){
getCalculationFormsByType(---I DO NOT KNOW WHAT TO PASS HERE---);
});
});
正如您所看到的,我的问题是我不知道在jQuery中传递给函数的内容。我不知道javascript中的这三个值是什么,如何在jQuery的each
循环中获取它们。
答案 0 :(得分:2)
应删除$("document").ready
中的引号。另外,$(..function here..)
是$(document).ready(...)
的缩写。
这是正确的实施:
$(function() {
$("select[name='operationChoose[]']").each(function(i) { // <-- i-th element
// this points to the <select> element, HTMLSelectElement
getCalculationFormsByType(this, this.parentNode.parentNode, i);
});
});
答案 1 :(得分:1)
你需要能够访问javascipt的parentNode
,所以只需将jQuery对象转移到经典的javascript对象。
另外,“文件”永远不会奏效。使用document
或简写
$(function(){
$("select[name='operationChoose[]']").each(function(){
getCalculationFormsByType(this, this.parentNode.parentNode, '1');
});
});