jquery尝试按名称

时间:2016-05-19 00:34:22

标签: javascript jquery button

所以我有一些按钮名称add_subpage0,add_subpage1等等...然后onclick to function。例如:

<input type="submit" name="add_subpage0" value="Add Subpage" onClick="popup_subpage('add_subpage0');">
<input type="submit" name="add_subpage1" value="Add Subpage" onClick="popup_subpage('add_subpage1');">

我试图抓住按钮的位置并将div移动到所述位置。唯一的问题(我认为)是获取按钮的名称。

<script>
function popup_subpage(thisdiv) {
    var name = 'div[name=' + thisdiv + ']';
    var thebutton = $( name );
    var popupdiv = $( 'div[id=add_subpage_popup]' );
    var position = thebutton.position();
    popupdiv.css("visibility", "visible");
    popupdiv.css("top", position.top);
    popupdiv.css("left", position.left);
}
</script>

div(add_subpage_popup)变得可见。但这个立场没有改变。我认为它甚至没有按我设定的名称抓住按钮。 有什么想法吗?我不知所措。 扎克

2 个答案:

答案 0 :(得分:1)

只需在函数中传递 this 即可自动获取要使用的元素。

<input type="submit" name="add_subpage0" value="Add Subpage" onClick="popup_subpage(this);">

function popup_subpage(thisEl) {

    var thebutton = $( thisEl );
    var popupdiv = $( 'div[id=add_subpage_popup]' );
    var position = thebutton.position();
    popupdiv.css("visibility", "visible");
    popupdiv.css("top", position.top);
    popupdiv.css("left", position.left);

}

答案 1 :(得分:1)

var name = 'div[name=' + thisdiv + ']';

应该是

var name = 'input[name=' + thisdiv + ']';

因为该名称位于<input>元素上,而不是<div>

function popup_subpage(thisdiv) {
  var name = 'input[name=' + thisdiv + ']';
  var thebutton = $(name);
  var popupdiv = $('div[id=add_subpage_popup]');
  var position = thebutton.position();
  popupdiv.css("visibility", "visible");
  popupdiv.css("top", position.top);
  popupdiv.css("left", position.left);
}
#add_subpage_popup {
  visibility: hidden;
  position: absolute;
  color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="submit" name="add_subpage0" value="Add Subpage" onClick="popup_subpage('add_subpage0');">
<input type="submit" name="add_subpage1" value="Add Subpage" onClick="popup_subpage('add_subpage1');">
<div id="add_subpage_popup">
  Popup
</div>