Jquery DOM元素到字符串

时间:2012-10-13 12:38:58

标签: javascript jquery dom

是否可以将DOM元素转换为字符串? 基本上我需要这样的东西:

列表:

<div selector="HERE DOM ELEMENT" > Some element</div>
<div selector="HERE DOM ELEMENT 2" > Some element 2</div>
<div selector="HERE DOM ELEMENT 3" > Some element 3</div>

当我点击一些选择器时,我希望它突出显示指定Dom Element。

此列表由以下脚本生成:http://tinybug.smartbird.pl/example/index.html。当我点击选择列表时,它有时会选择错误的Dom元素。

有什么想法吗?

最好的问候

2 个答案:

答案 0 :(得分:3)

您不能将DOM元素存储为字符串,稍后可以通过该字符串找到它们。你必须以某种方式识别这些元素,无论是通过id,类,甚至是带有所有属性的标记名称,但你必须识别它们。这将帮助您在jQuery中使用该字符串。

我可以建议某种算法:

  • 找到元素的ID(如果有)并将其存储为字符串#id_of_element
  • 否则找到元素的类名,并使用标记名,类名和匹配元素列表中的索引存储元素,因为可能有多个元素具有相同的标记名称和相同的类名
  • 想一想可能特定于您的问题的任何其他识别方法。

答案 1 :(得分:0)

不是属性选择器的值已经是字符串?如何在其中的元素上添加特定的 ID 呢?

<div class="selectable" selector="element_1">Click to select element 1</div>
<div class="selectable" selector="element_2">Click to select element 2</div>
<div class="selectable" selector="element_3">Click to select element 3</div>        

<div id="element_1">ELEMENT 1</div>
<div id="element_2">ELEMENT 2</div>
<div id="element_3">ELEMENT 3</div>

<script type="text/javascript">
    $("div.selectable").click(function(){
        var div_selector = $(this).attr("selector");                
        $('html').find("#"+div_selector).css("background-color", "#ddd");
    });
</script>