如何在锚标记下找到按钮ID?

时间:2012-10-23 09:36:43

标签: jquery button asp.net-mvc-4 anchor

我正在研究MVC4 jQuery。我需要找到anchor标记下的按钮ID。 这是我的jQuery代码:

// drop event handler
addEvent(dropAreas, 'drop', function (event) {
    alert(5);
    if (event.preventDefault) event.preventDefault();

    // get dropped object
    var iObj = event.dataTransfer.getData('obj_id');
    var oldObj = document.getElementById(iObj);

    // get inner text
    var linkText = oldObj.innerHTML;
    oldObj.className += 'hidden';

    // remove object from DOM
    oldObj.parentNode.removeChild(oldObj);

    // add similar object in another place
    this.innerHTML += '<a id="' + iObj + '" draggable="true">' + linkText + '<button id="btnAdd " style="height:20px;width:20px;">Add</button></a>';

    // and update event handlers
    updateHandlerDrag();

    this.style.borderColor = "#ccc";
    return false;
});

在这一行中,我在上面的代码中定义了一个按钮:

 this.innerHTML += '<a id="' + iObj + '" draggable="true">' + linkText + '<button id="btnAdd " style="height:20px;width:20px;">Add</button></a>';

在上面的代码中,我在锚标记中给出了一个按钮,我需要在下面的代码中触发该id:

// add SubMenu
var addColBtn = document.querySelectorAll('#btnAdd ');
addEvent(addColBtn, 'click', function (event) {
    alert('addingSubmenu');

    if (event.preventDefault) event.preventDefault();
    alert('adding');
    // recalculate widths for columns
    var oCols = document.querySelector('div.columns');
    alert(sub);
    var iChilds = oCols.childElementCount + 1;
    var dWidth = 50 / iChilds;

    // add single column
    oCols.innerHTML += '<div class="columns" id="drop_' + (iChilds + 1) + '" droppable="true"><img src="images/delete.png" onclick="removeColumn(this)" /></div>';

    // set new widths
    for (var i = 0; i < iChilds; i++) {
        oCols.children[i].style.width = dWidth + '%';
    }

    // update handlers
    updateHandlerDrop();

    return false;
});

我该怎么做?

2 个答案:

答案 0 :(得分:0)

     $('a').click(function(){
       console.log( $(this).find('button').attr('id'))
     });

答案 1 :(得分:0)

首先,你想用这行代码做什么???

this.innerHTML += '<a id="' + iObj + '" draggable="true">' + linkText + '<button id="btnAdd " style="height:20px;width:20px;">Add</button></a>'; 

如果我在标记(fiddle link)上方的html字符串中填写了一些值,则会准备以下内容....

<a id="someId" draggable="true">SomeText<button id="btnAdd " style="height:20px;width:20px;">Add</button></a>​

无论你在这里尝试什么......你都是以 错误 的方式做到这一点。在锚标记内插入一个按钮是完全错误的!

其次,要使用jquery获取button / anchor标记,可以使用jquery选择器,例如

var selectedItem = $("#uniqueIdGoesHere");

并触发点击事件,你可以写这个

$("#uniqueIdGoesHere").bind("click", function(){
  // write here what needs to be triggered.
});