将DIV内容添加到列表框选项

时间:2014-05-16 22:48:36

标签: javascript jquery html

我一直在编写一个脚本来提取。 DIV STRONG 元素,并将.append应用于 DIV 并将其放入listbox.option。到目前为止,我所拥有的代码成功地将元素放入列表中,但当我追加元素时,它在 DIV 中开始变得有点混乱,因为它已在段落中包含逗号。它还会在另一个 DIV 中添加其他 STRONG 标记。我真正想要的只是将带有“,”的DIVa.STRONG元素的内容拉入列表框的简单方法。如果有人有解决方案或者可以帮助我理解需要发生什么,我将非常感激。谢谢你们。

请参阅我的jsfiddle Example Site:

HTML:

<div id="div1"><span name="#anchor" style="color: black;">Blah Blah <strong>A</strong> and <strong>B</strong> manufactured by <strong>C</strong> blah blah.</span><a href="#">delete</a></div><div id="div2"><strong>Test</strong></div>

    <form>
        <select id="mySelect" size="8">
        <option>Apple</option>
        <option>Pear</option>
        <option>Banana</option>
        <option>Orange</option>
        </select>
    </form>
    <br /><div>
    <p>Test words in paragraph</p>

使用Javascript:

$("a").click(function(e){

  $div = $(this).parent("div");

  id = $div.attr("id");

  $( "strong" ).append( ", ");

  text = $div.find("strong").text();

     var x = document.getElementById("mySelect");
     var option = document.createElement("option");
       option.text = text.substr(0,(text.length -2));
         x.add(option,x[0]);

 e.preventDefault(); 
}); 

1 个答案:

答案 0 :(得分:0)

您需要的是:jsFiddle

上面的代码执行此操作:

  • 找到#div1中的每个强元素,并将其值附加到此
  • #mySelect

jQuery代码:

$("a").click(function(e){
    var arr = [];
    $("#div1 strong").each(function() {
        arr.push($(this).html());
    });
    $("#mySelect").append("<option>"+arr.join(', ')+"</option>");
});

注意:
你混合了jQuery代码和js代码。这不是好习惯。您已经在使用jQuery,因此请将它用于您需要的所有内容。你不必将它与js代码混合在一起。