在JavaScript中通过父类访问子元素

时间:2018-04-26 09:15:26

标签: javascript

如何通过JavaScript中的类通过父元素访问没有类或ID的子元素package Message import ( "fmt" "os" "github.com/ashwanthkumar/slack-go-webhook" ) func Message(message string, cannalul string, attash bool) { f, err := os.Open(filename) if err != nil { return false } defer f.Close() _ = f fullName := "myServer" webhookUrl := "https://hooks.slack.com/services/......." attachment1 := slack.Attachment {} //attachment1.AddField(slack.Field { Title: "easySmtp", Value: "EasySmtp" }).AddField(slack.Field { Title: "Status", Value: "Completed" }) if attash { attachment1.AddField(slack.Field { Title: "easySmtp", Value: fullName}) } payload := slack.Payload { Text: message, Username: "worker", Channel: cannalul, IconEmoji: ":grin:", Attachments: []slack.Attachment{attachment1}, } err := slack.Send(webhookUrl, "", payload) if len(err) > 0 { fmt.Printf("error: %s\n", err) } }

它应该只在innerHTML代码之间返回text

<b>

3 个答案:

答案 0 :(得分:3)

尝试使用querySelector()textContent

var txt = document.querySelector('.parent.element > h5 > b').textContent;
console.log(txt)
<div class="parent element">
  <h5>
    some other text<b>text</b>
  </h5>
</div>

答案 1 :(得分:3)

您可以将document.querySelector().parent.element h5 b之类的CSS选择器一起使用,它会在b标记内找到h5标记,其中包含类{{} 1}}和parent

然后,您可以使用textContent仅抓取文字,或innerHTML同时抓取文字和标记。

&#13;
&#13;
element
&#13;
console.log(document.querySelector('.parent.element h5 b').textContent);

// sample when using innerHTML grabbing the h5
console.log(document.querySelector('.parent.element h5').innerHTML);

// sample when using textContent grabbing the h5
console.log(document.querySelector('.parent.element h5').textContent);
&#13;
&#13;
&#13;

关于textContent vs innerText的说明:

  

Internet Explorer介绍了<div class="parent element"> <h5> some other text<b>text</b> </h5> </div>。意图类似于node.innerText   但有以下不同之处:

     
      
  • 虽然node.textContent获取了所有元素的内容,包括textContent<script>元素,但<style>却没有。

  •   
  • innerText知道样式,不会返回隐藏元素的文本,而innerText则会。

  •   
  • 由于textContent知道CSS样式,它会触发重排,而innerText则不会。

  •   
  • textContent不同,在Internet Explorer中更改textContent(最高版本为11)不仅会从元素中删除子节点,   但也永久地破坏所有后代文本节点(所以它是   无法再将节点插入任何其他元素或插入   相同的元素)。

  •   

答案 2 :(得分:2)

var innerText=document.querySelector('.parent.element h5 b').innerText
console.log(innerText);
<div class="parent element">
  <h5>
    some other text<b>text</b>
  </h5>
</div>