【问题标题】:Jquery selecting innerText of custom tagsJquery选择自定义标签的innerText
【发布时间】:2012-07-15 10:55:36
【问题描述】:

我希望这很简单,但是在进行了大量的谷歌搜索和尝试选择器、find()、content()、text() 等之后,我并没有完全做到这一点。任何帮助将不胜感激。

我在网页中有一些自定义标记。

<div id="myGrid">
    <url>www.google.com</url>
    <columns>
        <column>ID</column>
        <column>Position</column>
        <column>FirstName</column>
        <column>LastName</column>
    </columns>
</div>

我需要将&lt;url&gt; 的文本选择到一个变量中。 我还需要将&lt;columns&gt; 的集合放入一个变量(数组/集合)中。

标签名称将是标识符,即我不能使用 ID 或 CLASS 来查找这些元素。

似乎它应该是可行的,但到目前为止我的尝试都失败了......非常感谢任何帮助。

谢谢!

【问题讨论】:

标签: jquery jquery-selectors innertext


【解决方案1】:

我会为您提供有关 url 的帮助,因为它非常基本。这应该可以帮助您处理这些列。

Jquery 将选择您提供的任何元素。您可以使用任何元素名称。在这里查看jsfiddle

如果您担心 IE 问题,请使用document.createElement('url'),它会告诉 IE url 是文档的一个元素

document.createElement('url');  //crutch for IE

$(document).ready(function() {
    alert($('url').html());  
})​

【讨论】:

  • 谢谢知道了,createElement()函数我会记住的,之前没有想到这个。
  • 非常感谢,document.createElment() 是这里的关键。不过,我还有一个问题。在我的文档头部包含此代码非常有效。但是,我需要将其提取到 .JS 文件中。我已将这行代码添加到 $(document).ready();功能,但这会导致它失败,你能就此提出建议吗?我猜加载顺序不正确。
  • @user1389920 不要在文档就绪调用中添加document.createElement()。这需要在页面中使用url元素之前编写
【解决方案2】:
var $t = {}
var i = 0;   

$('#myGrid').find('column').each(function(){

    $t[i] = $(this).text();
    i++;

});

alert($('#myGrid url').text());
alert($t.toSource());

【讨论】:

  • 谢谢,第一个警报工作正常,但第二个没有执行。对我来说很不幸。
  • @user1389920 尝试更改:$t[i]$t['N'+i] 和 alert($t.N0) 或 alert($t.N1)
  • 更新:啊! .toSource() 在我调试时抛出异常。 (使用 Jquery 1.7.2?)。尝试使用 $.each() 遍历数组,效果很好!非常感谢!
【解决方案3】:

这个怎么样(jsbin版本http://jsbin.com/ucivav)?

var url = $("#myGrid url").text();
var $cols = $("#myGrid columns column");
alert(url);
alert($cols.first().text());

【讨论】:

  • 谢谢,这很适合获取 url。我以为我已经尝试过了,所以不知道我之前做错了什么。对于 cols...警报是空字符串。
  • 我想我可能给了你错误版本的 jsbin 文件 - 试试jsbin.com/ucivav/5
【解决方案4】:
var url = $("url").html();
var columns = $.makeArray($("column").find("columns").html());

虽然我没有测试过上面的,更好的方法是使用 jQuery 'each' 函数:

var a = Array();
$('#myGrid').find('column').each(function(){
    a.push($(this).html());
});

并进行测试:alert(a[2]); 其中数字是数组编号。

其中 url 是您的 url (duh),columns 是您的列数组。如果只有一个,或者您在函数中使用它,这将非常有用,在这种情况下,我会将选择器更改为 $("url", this).html();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-19
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    • 2023-03-11
    相关资源
    最近更新 更多