2017-07-08 8 views
0

を押したときに、私はこのようになりますdivを持っているのdivから要素を削除します。ジャバスクリプト内のボタンが

function createUserSegment(tags) { 
    var div = document.createElement("div"); 
    div.className = 'contact-segment-item includes' 
    div.innerHTML = "<div class='segment-content pull-left' style='width: 80%''> <p>" + tags + "</p> </div> <div class='pull-right'> <a href='your link here'> <i class='white-segment-icon fa fa-times'></i></a> </div>"; 
    document.getElementById("contact-segments").appendChild(div); 
} 

あなたが見ることができるように、JavaScriptを介して追加取得しているdiv要素は、「X」とのボタンを示しaタグを持っています。

contact-segment-itemを「x」キーを押して削除するにはどうすればよいですか?

それぞれがどのように見えるので、写真を撮るのが簡単です。

「x」ボタンをクリックするとjavascriptをリンクできますが、削除するのはcontact-segmentsの子供とどのようにして削除するのですか?pを削除するにはどうすればよいですか?ユーザーはこのdivの「X」を押すと

enter image description here は、私がpを取得したいか、その場合Woop!にはので、私はそれで何かを行うことができますが、その後も削除するには、そのcontact-segment-item

おかげ

+0

は数日https://stackoverflow.com/q/44887125/3951400 –

+0

HTTPS前からこの質問を私に思い出させます。 mozilla.org/en-US/docs/Web/API/ChildNode/remove –

+0

@ E.Sundin "x"ボタンを作成し、そのポストのようなリスナーを追加して、その指示に従うなら...私はどのように削除しますか? 2 divsの代わりに 'div'の代わりにボタンを囲んでいますか?また、そうする前に 'p'をどうすれば得ることができますか? – Walker

答えて

2

.innerHTMLの代わりに、ノードをappendChild.にネストします。最後に、iボタンを閉じるには、onClickイベントハンドラを追加します。ノードdivを渡し、remove()メソッドを使用してノードを削除します。

EDIT:

を追加しましたCSS。

アンカーでセグメントを削除する必要がある場合はaを使用しないでください。たとえば、aをラップせずにiのみを使用し、cursor: pointerスタイルを追加します。

実施例を参照してください://開発者:

function createUserSegment(tags){ 
 

 
    var div = document.createElement("div"); 
 
    div.className = 'contact-segment-item includes'; 
 
    
 
    var tagInfo = document.createElement("div"); 
 
    tagInfo.className = 'contact-segment-item__text'; 
 
    tagInfo.innerHTML = tags; 
 
    
 
    var closeButton = document.createElement("i"); 
 
    closeButton.className = 'contact-segment-item__closeButton white-segment-icon fa fa-times'; 
 
    closeButton.onclick = function() { 
 
    div.remove(); 
 
    }; 
 
    
 
    div.appendChild(tagInfo); 
 
    div.appendChild(closeButton); 
 
    
 

 
    document.getElementById("contact-segments").appendChild(div); 
 

 
}
#contact-segments { 
 
    max-width:350px; 
 
    width: 100%; 
 
} 
 

 
.contact-segment-item { 
 
    display: block; 
 
    position: relative; 
 
    width: 100%; 
 
    background: #00B792; 
 
    border-radius: 8px; 
 
    line-height: 40px; 
 
    clear: both; 
 
    padding: 20px 30px; 
 
    margin-bottom: 10px; 
 
} 
 

 
.contact-segment-item__anchor::after { 
 
    clear: both; 
 
} 
 

 
.contact-segment-item__text { 
 
    display: inline-block; 
 
    color: #fff; 
 
} 
 

 
.contact-segment-item__closeButton { 
 
    display: inline-block; 
 
    cursor: pointer; 
 
    color: #fff; 
 
    position: absolute; 
 
    top: 50%; 
 
    right: 20px; 
 
    transform: translateY(-50%); 
 
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" /> 
 

 
<button id="add-new" onClick="createUserSegment('new one')">Add new segment</button> 
 

 
<br/> 
 

 
<div id="contact-segments"> 
 

 
</div>

+0

これは素晴らしいことです!うわー、本当にありがとう。 'p'内部htmlと閉じるボタンを並んで配置するにはどうすればいいですか?それは今、もう一方のトップの1つに現れています...私は自分のイメージのように見えるようにしたいと思います。私は本当にあなたの助けに感謝します。また、onclickでは、そのインスタンスの 'tags'にまだアクセスできますか?私は配列からそれを削除する必要があります。 – Walker

+0

'.className'プロパティを' paragraph.className = 'inline-paragraph''のように 'paragraph'に追加することができます。あなたの関数に渡す 'tags'パラメータは' onclick'の中でアクセス可能になります。あなたが言及した 'array'が適切な' scope'にあることを確認してください。グローバルスコープ。 – loelsonk

+0

私は自分の答えを更新しました。それがあなたのために大丈夫ならばそれを受け入れます。どのようにスタイルを設定できるかを示すためにCSSを追加しました。私はまた 'p'幅を別の' div'に置き換えました。アンカーでセグメントを削除する必要がある場合は、 'a'を使用しないでください。たとえば、 'a'をラップせずに' i'のみを使用し、 'cursor:pointer'スタイルを追加します。 – loelsonk