1

我正在使用谷歌地图绘图管理器。他们不会在绘图工具按钮栏上放置 id 或类名,所以我自己尝试这样做。

首先,我想删除下面工作正常的圆形按钮,但我想添加我自己的按钮,所以需要向父 div“gmnoprint”添加一个类名,但谷歌有大约 5 个 div 都具有相同的类名。我只想将它添加到找到圆形按钮的那个。

<div class=gmnoprint"></div>
<div class=gmnoprint"></div>
<div class=gmnoprint"></div>
<div class=gmnoprint">
    <div>
        <div> <== This is what I found in my search
            <span>
                <div>
                    <img></img>
                </div>
            </span>
        </div>
    </div>
</div>  

我能够找到我想要的元素并将其删除,但是向其包装 div 添加一个类对我来说有点困难。

这适用于删除按钮

$(".gmnoprint").each(function(){
   $(this).find("[title='Draw a circle']").remove();
});

这不起作用..只需将类添加到所有“.gmnoprint”div

$(".gmnoprint").each(function(){
   $(this).find("[title='Draw a circle']").remove().parent().addClass("test");
});
4

3 回答 3

2

remove()从 DOM 中删除元素并返回与 DOM 完全没有连接的独立 jquery 对象。呼叫parent() 的呼叫remove()不正确,这可能是您的问题的原因。

尝试将您的陈述拆分为:

var toRemove = $(this).find("[title='Draw a circle']");
toRemove.parent().addClass("test");
toRemove.remove();
于 2012-12-01T13:46:07.170 回答
0

您可以使用 jQueryinsertAfter并在该默认按钮之后退出您的按钮,然后将其删除。

$(".gmnoprint").each(function(){
   var defBtn = $(this).find("[title='Draw a circle']");
   $('<button class="my-button" />').insertAfter(defBtn);
   defBtn.remove();
});

或者像这样使用 jQuery after

$(".gmnoprint").each(function(){
   $(this)
      .find("[title='Draw a circle']")
      .after($('<button class="my-button" />'))
      .remove();
});
于 2012-12-01T13:46:15.097 回答
0

您可以使用child selector来定位元素

$(".gmnoprint > div > div").addClass('myClassName');

此时您可以替换整个 div 的 html ,或者找到 span 并将其替换为内部 html。使用html()不需要使用的方法,remove()因为它将替换元素的所有内容

 $(".gmnoprint > div > div").addClass('myClassName').find('span').html('<newButton>');

API 参考:http ://api.jquery.com/child-selector/

于 2012-12-01T13:49:44.660 回答