2011-07-23 47 views
0

例如:在jQuery中获取就绪函数代码下面的元素?

<script> 
$(document).ready(function() { 
    alert($(this).getBelowElementToThisScript('form').id); 
}); 
</script> 
<form id="IamTheNext"></form> 
<form id="Iamnot"></form> 

此代码应显示此消息:IamTheNext

此外,该解决方案需要用这个例子太工作:

<script src="getbelowelement.js"></script> 
<form id="IamTheNext"></form> 
<form id="Iamnot"></form> 

感谢

回答

1

尝试这个:

var form = $('script[src="getbelowelement.js"]').next(); 

但我会建议使用的形式ID:

var form = $('#IamTheNext'); 
+0

这并不是说,我喜欢这样的事情:$(本).closest(“脚本”)。接下来(“形式”)ID – Cristian

+0

@Cristian:请注意,你喜欢什么并不总是最好的解决办法 – Ibu

1

您也可以尝试给script标签的ID。

0

这种方法是危险的;脚本不应该太依赖它在页面中的位置。

这就是说,在Firefox和Chrome以下工作和应在主流浏览器工作(需要您自担风险使用)。

See it in action at jsBin.<script> ...<script src="...">方法显示在同一页中。

$(document).ready(function() { 
    invocationsOfThis = (typeof invocationsOfThis == 'number') ? invocationsOfThis + 1 : 1; 
    var scriptTags  = document.getElementsByTagName ('script'); 
    var thisScriptTag = null; 

    //--- Search scripts for scripts of this type. 
    for (var foundCnt = 0, J = 0, L = scriptTags.length; J < L; ++J) 
    { 
     /*--- Since the script can be either inline or included, search 
      both the script text and the script src link for our unique 
      identifier. 
     */ 
     var thisTag  = scriptTags[J]; 
     var scriptCode = thisTag.innerText || thisTag.textContent; 
     var scriptSrc = thisTag.src; 

     //--- IMPORTANT, change pastebin.com to the filename that you use. 
     if (/invocationsOfThis/i.test (scriptCode) || /pastebin.com/i.test (scriptSrc)) 
     { 
      //--- Found a copy of this script; is it the right one, based on invocation cnt? 
      foundCnt++; 
      if (foundCnt == invocationsOfThis) { 
       thisScriptTag = thisTag; 
       break; 
      } 
     } 
    } 

    if (thisScriptTag) { 
     //--- Get the target node. 
     var nextForm  = $(thisScriptTag).next ('form'); 
     var nextFormId  = nextForm.attr ('id'); 

     //--- Act on the target node. Here we notify the user 
     nextForm.text ('This is form: "' + nextFormId + '".'); 
    } 
}); 
相关问题